From a121f85c83d8044eb100e7673c75dc4d0594d381 Mon Sep 17 00:00:00 2001 From: Nathan Ridge Date: Mon, 6 Jul 2015 00:23:21 -0400 Subject: [PATCH] Bug 421823 - When a base class lookup runs into a deferred instance, disambiguate between a method and a field Change-Id: Ib29f85822d11504a9f4c857083f275443ce6a832 Signed-off-by: Nathan Ridge --- .../internal/core/dom/parser/cpp/semantics/CPPSemantics.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 2d24255257d..6071b15347b 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 @@ -217,6 +217,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPScope; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplateNonTypeArgument; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplateParameterMap; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPUnknownConstructor; +import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPUnknownField; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPUnknownMemberClass; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPUnknownMethod; import org.eclipse.cdt.internal.core.dom.parser.cpp.CPPUsingDeclaration; @@ -497,8 +498,10 @@ public class CPPSemantics { if (binding == null && data.skippedScope != null) { if (namePropertyInParent == IASTNamedTypeSpecifier.NAME) { binding= new CPPUnknownMemberClass(data.skippedScope, name.getSimpleID()); - } else { + } else if (data.isFunctionCall()) { binding= new CPPUnknownMethod(data.skippedScope, name.getSimpleID()); + } else { + binding= new CPPUnknownField(data.skippedScope, name.getSimpleID()); } }