diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp index 1f764167551e947f0ec8a145dc60d06578f1a568..f5f5b82d5ee284899e2e9c38c96377f79997a977 100644 --- a/src/plugins/cppeditor/cppquickfixes.cpp +++ b/src/plugins/cppeditor/cppquickfixes.cpp @@ -1536,8 +1536,9 @@ private: TypeOfExpression typeOfExpression; typeOfExpression.init(assistInterface()->semanticInfo().doc, assistInterface()->snapshot(), assistInterface()->context().bindings()); + Scope *scope = currentFile->scopeAt(binaryAST->firstToken()); const QList<LookupItem> result = typeOfExpression(currentFile->textOf(binaryAST->right_expression), - currentFile->scopeAt(binaryAST->firstToken()), + scope, TypeOfExpression::Preprocess); if (! result.isEmpty()) { @@ -1545,7 +1546,10 @@ private: SubstitutionEnvironment env; env.setContext(assistInterface()->context()); env.switchScope(result.first().scope()); - UseQualifiedNames q; + ClassOrNamespace *con = typeOfExpression.context().lookupType(scope); + if (!con) + con = typeOfExpression.context().globalNamespace(); + UseMinimalNames q(con); env.enter(&q); Control *control = assistInterface()->context().control().data();