diff options
author | Przemyslaw Gorszkowski <pgorszkowski@gmail.com> | 2013-04-13 08:40:54 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2013-04-17 14:10:32 +0200 |
commit | 17cd161a9d265db12ba763e090111f0fb27fbab9 (patch) | |
tree | 2250bab97309e0a4e5013e904356d0816e2946cd /src/libs/cplusplus/LookupContext.cpp | |
parent | b55961d22583257cf6e4901e71dfc7d8226a515e (diff) | |
download | qt-creator-17cd161a9d265db12ba763e090111f0fb27fbab9.tar.gz |
C++: fix cloning of templates
Fix instantiation of templates(by cloning original symbols). Assigning of scope
for cloned symbol is taken from the symbol which is used to instantiate.
Task-number: QTCREATORBUG-9098
Change-Id: I066cc8b5f69333fabdaf2d4466b205baf08bd3f1
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/libs/cplusplus/LookupContext.cpp')
-rw-r--r-- | src/libs/cplusplus/LookupContext.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index 51d28f29ea..fab318e8ca 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -936,6 +936,7 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespac foreach (Symbol *s, reference->symbols()) { Symbol *clone = cloner.symbol(s, &subst); + clone->setScope(s->scope()); instantiation->_symbols.append(clone); #ifdef DEBUG_LOOKUP Overview oo;oo.showFunctionSignatures = true; @@ -1089,6 +1090,7 @@ void ClassOrNamespace::NestedClassInstantiator::instantiate(ClassOrNamespace *en foreach (Symbol *s, nestedClassOrNamespace->_symbols) { Symbol *clone = _cloner.symbol(s, &_subst); + clone->setScope(s->scope()); nestedClassOrNamespaceInstantiation->_symbols.append(clone); } } |