diff options
author | Markus Schorn | 2009-01-27 18:25:52 +0000 |
---|---|---|
committer | Markus Schorn | 2009-01-27 18:25:52 +0000 |
commit | 9bf79183b4c842e7c6cbae71c939900aa5b74356 (patch) | |
tree | a8acdff22d1ff2625185c0a205e113c4ff548db0 /core | |
parent | c0b169fb8c88d0cd025abe927d96e7070c9e3fc6 (diff) | |
download | org.eclipse.cdt-9bf79183b4c842e7c6cbae71c939900aa5b74356.tar.gz org.eclipse.cdt-9bf79183b4c842e7c6cbae71c939900aa5b74356.tar.xz org.eclipse.cdt-9bf79183b4c842e7c6cbae71c939900aa5b74356.zip |
Expression type for array-access on unknown binding.
Diffstat (limited to 'core')
2 files changed, 17 insertions, 0 deletions
diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java index d13c756f2ba..45804a0f76a 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java @@ -3702,4 +3702,18 @@ public class AST2TemplateTests extends AST2BaseTest { String code= getAboveComment(); parseAndCheckBindings(code, ParserLanguage.CPP); } + + // class C {}; + // template<typename T> class XT { + // T field; + // void bla() { + // C c; + // field[0].m(c); + // } + // }; + public void testResolutionOfUnknownArrayAccess() throws Exception { + String code= getAboveComment(); + parseAndCheckBindings(code, ParserLanguage.CPP); + } + } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArraySubscriptExpression.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArraySubscriptExpression.java index 65f356bf305..49ece3d6ad1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArraySubscriptExpression.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArraySubscriptExpression.java @@ -120,6 +120,9 @@ public class CPPASTArraySubscriptExpression extends ASTNode implements IASTArray IType t = getArrayExpression().getExpressionType(); t= SemanticUtil.getUltimateTypeUptoPointers(t); try { + if (t instanceof ICPPUnknownType) { + return CPPUnknownClass.createUnnamedInstance(); + } if (t instanceof ICPPClassType) { ICPPFunction op = CPPSemantics.findOperator(this, (ICPPClassType) t); if (op != null) { |