forked from qt-creator/qt-creator
C++: Fix endless recursion in base template lookup
When the template and base template are actually the same. Task-number: QTCREATORBUG-7830 Change-Id: Ibf8ab5f5ee8da544ec768a078bd272500d2dc604 Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
This commit is contained in:
@@ -769,8 +769,11 @@ ClassOrNamespace *ClassOrNamespace::nestedType(const Name *name, ClassOrNamespac
|
||||
// Qualified names in general.
|
||||
// Ex.: template <class T> class A : public B<T>::Type {};
|
||||
ClassOrNamespace *binding = this;
|
||||
if (const Name *qualification = qBaseName->base())
|
||||
binding = lookupType(qualification);
|
||||
if (const Name *qualification = qBaseName->base()) {
|
||||
const TemplateNameId *baseTemplName = qualification->asTemplateNameId();
|
||||
if (!baseTemplName || !compareName(baseTemplName, templ->name()))
|
||||
binding = lookupType(qualification);
|
||||
}
|
||||
baseName = qBaseName->name();
|
||||
|
||||
if (binding)
|
||||
|
||||
Reference in New Issue
Block a user