diff options
Diffstat (limited to 'core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BaseClassLookup.java')
-rw-r--r-- | core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BaseClassLookup.java | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BaseClassLookup.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BaseClassLookup.java index 9691f3e476a..8579ae27553 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BaseClassLookup.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/BaseClassLookup.java @@ -26,7 +26,6 @@ import org.eclipse.cdt.core.dom.ast.cpp.ICPPBase; import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassScope; import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassType; import org.eclipse.cdt.core.dom.ast.cpp.ICPPMember; -import org.eclipse.cdt.core.index.IIndexFileSet; import org.eclipse.cdt.core.parser.util.ArrayUtil; import org.eclipse.cdt.core.parser.util.CharArrayObjectMap; import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding; @@ -41,7 +40,7 @@ import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPUnknownBinding; * from the graph. */ class BaseClassLookup { - public static void lookupInBaseClasses(LookupData data, ICPPClassScope classScope, IIndexFileSet fileSet) { + public static void lookupInBaseClasses(LookupData data, ICPPClassScope classScope) { if (classScope == null) return; @@ -50,7 +49,7 @@ class BaseClassLookup { return; final HashMap<IScope, BaseClassLookup> infoMap = new HashMap<IScope, BaseClassLookup>(); - BaseClassLookup rootInfo= lookupInBaseClass(data, null, false, classType, fileSet, infoMap, 0); + BaseClassLookup rootInfo= lookupInBaseClass(data, null, false, classType, infoMap, 0); if (data.contentAssist) { rootInfo.collectResultForContentAssist(data); } else { @@ -137,7 +136,7 @@ class BaseClassLookup { } static BaseClassLookup lookupInBaseClass(LookupData data, ICPPClassScope baseClassScope, boolean isVirtual, - ICPPClassType root, IIndexFileSet fileSet, HashMap<IScope, BaseClassLookup> infoMap, int depth) { + ICPPClassType root, HashMap<IScope, BaseClassLookup> infoMap, int depth) { if (depth++ > CPPSemantics.MAX_INHERITANCE_DEPTH) return null; @@ -164,9 +163,9 @@ class BaseClassLookup { result= new BaseClassLookup(baseClassScope.getClassType()); infoMap.put(baseClassScope, result); try { - IBinding[] members= CPPSemantics.getBindingsFromScope(baseClassScope, fileSet, data); + IBinding[] members= CPPSemantics.getBindingsFromScope(baseClassScope, data); if (members != null && members.length > 0 && members[0] != null) { - if (data.prefixLookup) { + if (data.isPrefixLookup()) { matches= members; } else { result.setResult(members); @@ -227,7 +226,7 @@ class BaseClassLookup { continue; BaseClassLookup baseInfo= lookupInBaseClass(data, (ICPPClassScope) grandBaseScope, - grandBase.isVirtual(), root, fileSet, infoMap, depth); + grandBase.isVirtual(), root, infoMap, depth); if (baseInfo != null) result.addBase(grandBase.isVirtual(), baseInfo); } @@ -335,7 +334,7 @@ class BaseClassLookup { return result; } else { if (fCollectedAsRegularBase && data.problem == null && containsNonStaticMember()) { - data.problem= new ProblemBinding(data.astName, IProblemBinding.SEMANTIC_AMBIGUOUS_LOOKUP); + data.problem= new ProblemBinding(data.getLookupName(), IProblemBinding.SEMANTIC_AMBIGUOUS_LOOKUP); } fCollectedAsRegularBase= true; } @@ -356,7 +355,7 @@ class BaseClassLookup { fBindings[numBindingsToAdd] = null; if (result.length > 0 && numBindingsToAdd > 0 && data.problem == null) { // Matches are found in more than one base class - this is an indication of ambiguity. - data.problem= new ProblemBinding(data.astName, + data.problem= new ProblemBinding(data.getLookupName(), IProblemBinding.SEMANTIC_AMBIGUOUS_LOOKUP, result); } result= ArrayUtil.addAll(result, fBindings); |