forked from qt-creator/qt-creator
Merge remote-tracking branch 'origin/3.3'
Conflicts: src/plugins/debugger/watchhandler.cpp src/plugins/projectexplorer/kitmodel.cpp src/plugins/qbsprojectmanager/qbsprojectmanager.cpp src/shared/qbs Change-Id: I6a68090993a264e93ac7850858cc24ba6bdb5602
This commit is contained in:
@@ -631,10 +631,15 @@ QList<LookupItem> ClassOrNamespace::lookup_helper(const Name *name, bool searchI
|
||||
// a qualified name. For instance, a nested class which is forward declared
|
||||
// in the class but defined outside it - we should capture both.
|
||||
Symbol *match = 0;
|
||||
QSet<ClassOrNamespace *> processed;
|
||||
for (ClassOrNamespace *parentBinding = binding->parent();
|
||||
parentBinding && !match;
|
||||
parentBinding = parentBinding->parent())
|
||||
parentBinding = parentBinding->parent()) {
|
||||
if (processed.contains(parentBinding))
|
||||
break;
|
||||
processed.insert(parentBinding);
|
||||
match = parentBinding->lookupInScope(fullName);
|
||||
}
|
||||
|
||||
if (match) {
|
||||
LookupItem item;
|
||||
@@ -648,8 +653,12 @@ QList<LookupItem> ClassOrNamespace::lookup_helper(const Name *name, bool searchI
|
||||
}
|
||||
|
||||
QSet<ClassOrNamespace *> processed;
|
||||
QSet<ClassOrNamespace *> processedOwnParents;
|
||||
ClassOrNamespace *binding = this;
|
||||
do {
|
||||
if (processedOwnParents.contains(binding))
|
||||
break;
|
||||
processedOwnParents.insert(binding);
|
||||
lookup_helper(name, binding, &result, &processed, /*templateId = */ 0);
|
||||
binding = binding->_parent;
|
||||
} while (searchInEnclosingScope && binding);
|
||||
|
||||
Reference in New Issue
Block a user