summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/LookupContext.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2015-05-31 20:07:49 +0300
committerOrgad Shaneh <orgads@gmail.com>2015-06-04 19:23:50 +0000
commitec4d242bb3ed17eff793f591ff8184f378380ef0 (patch)
treee8aca878f4ee10554338c05091cd6b020f72aa79 /src/libs/cplusplus/LookupContext.cpp
parent2070431d8ca867acfb4391c275cd82caff4d711a (diff)
downloadqt-creator-ec4d242bb3ed17eff793f591ff8184f378380ef0.tar.gz
C++: Fix resolving of templated partial specialization
Use-case: template<class T> struct t {}; template<class> struct s { float f; }; template<class X> struct s<t<X>> { int i; }; void f() { s<t<char>> var; var.i; // i not highlighted } Task-number: QTCREATORBUG-14034 Change-Id: I5d00bc3247352fca4af4c41a47c208ec3e193c8e Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Diffstat (limited to 'src/libs/cplusplus/LookupContext.cpp')
-rw-r--r--src/libs/cplusplus/LookupContext.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp
index dc96c304a5..2afe046ac0 100644
--- a/src/libs/cplusplus/LookupContext.cpp
+++ b/src/libs/cplusplus/LookupContext.cpp
@@ -1215,6 +1215,13 @@ LookupScopePrivate *LookupScopePrivate::findSpecialization(
if (specializationTemplateArgument == initializationTemplateArgument)
return cit->second;
+
+ if (const NamedType *specName = specializationTemplateArgument->asNamedType()) {
+ if (const NamedType *initName = initializationTemplateArgument->asNamedType()) {
+ if (specName->name()->identifier() == initName->name()->identifier())
+ return cit->second;
+ }
+ }
}
}
}