Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMarkus Schorn2009-01-27 17:57:32 +0000
committerMarkus Schorn2009-01-27 17:57:32 +0000
commitc0b169fb8c88d0cd025abe927d96e7070c9e3fc6 (patch)
tree9307ffc31cbc01dbca66d2f6f75b968a1ea1c493 /core
parent3feca4f34f38351ed99392889c58c8e39e6fbb1a (diff)
downloadorg.eclipse.cdt-c0b169fb8c88d0cd025abe927d96e7070c9e3fc6.tar.gz
org.eclipse.cdt-c0b169fb8c88d0cd025abe927d96e7070c9e3fc6.tar.xz
org.eclipse.cdt-c0b169fb8c88d0cd025abe927d96e7070c9e3fc6.zip
Don't attempt overload resolution for unknown functions.
Diffstat (limited to 'core')
-rw-r--r--core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java13
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java3
2 files changed, 16 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 926d73204c3..d13c756f2ba 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
@@ -3689,4 +3689,17 @@ public class AST2TemplateTests extends AST2BaseTest {
BindingAssertionHelper bh= new BindingAssertionHelper(getAboveComment(), true);
bh.assertNonProblem("substr(0)", 6, ICPPMethod.class);
}
+
+ // class C {};
+ // template<typename T> class XT {
+ // T field;
+ // void bla() {
+ // C c;
+ // field.m(c);
+ // }
+ // };
+ public void testResolutionOfUnknownFunctions() 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/semantics/CPPSemantics.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java
index 338bc607324..ac2576bac74 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java
@@ -2006,6 +2006,9 @@ public class CPPSemantics {
if (++viableCount == 1) {
firstViable= f;
}
+ if (f instanceof ICPPUnknownBinding) {
+ return f;
+ }
}
}
if (firstViable == null)

Back to the top