C++: Introduce caches to Clone* classes

Done-with: Erik Verbruggen <erik.verbruggen@digia.com>
Task-number: QTCREATORBUG-8747

Change-Id: I7cb694f8180c6aa932b07066d98d095340111324
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: xSacha
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
Nikolai Kosjar
2013-07-09 13:43:43 +02:00
parent 2a74ec4ffd
commit 20f3502754
3 changed files with 33 additions and 1 deletions

View File

@@ -1160,7 +1160,8 @@ void ClassOrNamespace::NestedClassInstantiator::instantiate(ClassOrNamespace *en
foreach (Symbol *s, nestedClassOrNamespace->_symbols) {
Symbol *clone = _cloner.symbol(s, &_subst);
clone->setScope(s->scope());
if (!clone->enclosingScope()) // Not from the cache but just cloned.
clone->setScope(s->enclosingScope());
nestedClassOrNamespaceInstantiation->_symbols.append(clone);
}
}