Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMarkus Schorn2009-01-27 18:25:52 +0000
committerMarkus Schorn2009-01-27 18:25:52 +0000
commit9bf79183b4c842e7c6cbae71c939900aa5b74356 (patch)
treea8acdff22d1ff2625185c0a205e113c4ff548db0 /core
parentc0b169fb8c88d0cd025abe927d96e7070c9e3fc6 (diff)
downloadorg.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')
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java14
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTArraySubscriptExpression.java3
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) {

Back to the top