This commit is contained in:
Roberto Raggi
2010-05-14 14:37:17 +02:00
parent 469b6ef741
commit ca1d1259c6
2 changed files with 1 additions and 25 deletions

View File

@@ -341,15 +341,9 @@ void ClassOrNamespace::lookup_helper(const Name *name, ClassOrNamespace *binding
QSet<ClassOrNamespace *> *processed, QSet<ClassOrNamespace *> *processed,
const TemplateNameId *templateId) const TemplateNameId *templateId)
{ {
if (! binding) if (binding && ! processed->contains(binding)) {
return;
else if (! processed->contains(binding)) {
processed->insert(binding); processed->insert(binding);
//Overview oo;
//qDebug() << "search for:" << oo(name) << "template:" << oo(templateId) << "b:" << oo(binding->_templateId);
foreach (Symbol *s, binding->symbols()) { foreach (Symbol *s, binding->symbols()) {
if (ScopedSymbol *scoped = s->asScopedSymbol()) if (ScopedSymbol *scoped = s->asScopedSymbol())
_factory->lookupInScope(name, scoped->members(), result, templateId); _factory->lookupInScope(name, scoped->members(), result, templateId);
@@ -360,8 +354,6 @@ void ClassOrNamespace::lookup_helper(const Name *name, ClassOrNamespace *binding
foreach (ClassOrNamespace *u, binding->usings()) foreach (ClassOrNamespace *u, binding->usings())
lookup_helper(name, u, result, processed, binding->_templateId); lookup_helper(name, u, result, processed, binding->_templateId);
//qDebug() << "=======" << oo(name) << "template:" << oo(binding->_templateId);
} }
} }
@@ -444,21 +436,6 @@ ClassOrNamespace *ClassOrNamespace::findType(const Name *name)
return lookupType_helper(name, &processed, /*searchInEnclosingScope =*/ false); return lookupType_helper(name, &processed, /*searchInEnclosingScope =*/ false);
} }
ClassOrNamespace *ClassOrNamespace::findType(const QList<const Name *> &path)
{
if (path.isEmpty())
return globalNamespace();
ClassOrNamespace *e = this;
for (int i = 0; e && i < path.size(); ++i) {
QSet<ClassOrNamespace *> processed;
e = e->lookupType_helper(path.at(i), &processed, /*searchInEnclosingScope =*/ false);
}
return e;
}
ClassOrNamespace *ClassOrNamespace::lookupType_helper(const Name *name, ClassOrNamespace *ClassOrNamespace::lookupType_helper(const Name *name,
QSet<ClassOrNamespace *> *processed, QSet<ClassOrNamespace *> *processed,
bool searchInEnclosingScope) bool searchInEnclosingScope)

View File

@@ -61,7 +61,6 @@ public:
ClassOrNamespace *lookupType(const Name *name); ClassOrNamespace *lookupType(const Name *name);
ClassOrNamespace *findType(const Name *name); ClassOrNamespace *findType(const Name *name);
ClassOrNamespace *findType(const QList<const Name *> &path);
private: private:
/// \internal /// \internal