aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/cplusplus/ResolveExpression.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp
index 9470efc2b4c..ffdaaf5b106 100644
--- a/src/libs/cplusplus/ResolveExpression.cpp
+++ b/src/libs/cplusplus/ResolveExpression.cpp
@@ -866,8 +866,12 @@ ClassOrNamespace *ResolveExpression::findClass(const FullySpecifiedType &origina
FullySpecifiedType ty = originalTy.simplified();
ClassOrNamespace *binding = 0;
- if (Class *klass = ty->asClassType())
- binding = _context.lookupType(klass, enclosingTemplateInstantiation);
+ if (Class *klass = ty->asClassType()) {
+ if (scope->isBlock())
+ binding = _context.lookupType(klass->name(), scope, enclosingTemplateInstantiation);
+ if (!binding)
+ binding = _context.lookupType(klass, enclosingTemplateInstantiation);
+ }
else if (NamedType *namedTy = ty->asNamedType())
binding = _context.lookupType(namedTy->name(), scope, enclosingTemplateInstantiation);