C++: Guard against parent binding loop

Task-number: QTCREATORBUG-16146
Change-Id: Ib2a790954517859acd7ca5f16c7d889d28208fb0
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
This commit is contained in:
Nikolai Kosjar
2016-04-27 13:24:14 +02:00
committed by Erik Verbruggen
parent c4f9c6f265
commit a717e980e7
3 changed files with 55 additions and 4 deletions

View File

@@ -1513,7 +1513,12 @@ bool InternalCppCompletionAssistProcessor::globalCompletion(Scope *currentScope)
}
}
QSet<ClassOrNamespace *> processed;
for (; currentBinding; currentBinding = currentBinding->parent()) {
if (processed.contains(currentBinding))
break;
processed.insert(currentBinding);
foreach (ClassOrNamespace* u, currentBinding->usings())
usingBindings.append(u);