C++: Fix completion for typedefs for templates in namespaces.

Change-Id: Ib96551388c94731d97eb8f9728613b120b0b86a9
Reviewed-on: http://codereview.qt.nokia.com/3262
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
This commit is contained in:
Christian Kamm
2011-08-19 13:10:36 +02:00
parent f51511a81d
commit d8c053b525
3 changed files with 46 additions and 21 deletions

View File

@@ -54,6 +54,8 @@ public:
ClassOrNamespace(CreateBindings *factory, ClassOrNamespace *parent);
const TemplateNameId *templateId() const;
ClassOrNamespace *instantiationOrigin() const;
ClassOrNamespace *parent() const;
QList<ClassOrNamespace *> usings() const;
QList<Enum *> enums() const;
@@ -72,7 +74,7 @@ private:
void flush();
/// \internal
ClassOrNamespace *findOrCreateType(const Name *name);
ClassOrNamespace *findOrCreateType(const Name *name, ClassOrNamespace *origin = 0);
void addTodo(Symbol *symbol);
void addSymbol(Symbol *symbol);
@@ -88,9 +90,9 @@ private:
const TemplateNameId *templateId);
ClassOrNamespace *lookupType_helper(const Name *name, QSet<ClassOrNamespace *> *processed,
bool searchInEnclosingScope);
bool searchInEnclosingScope, ClassOrNamespace *origin);
ClassOrNamespace *nestedType(const Name *name) const;
ClassOrNamespace *nestedType(const Name *name, ClassOrNamespace *origin) const;
private:
struct CompareName: std::binary_function<const Name *, const Name *, bool> {
@@ -109,6 +111,7 @@ private:
// it's an instantiation.
const TemplateNameId *_templateId;
ClassOrNamespace *_instantiationOrigin;
friend class CreateBindings;
};