diff options
author | Christian Kamm <christian.d.kamm@nokia.com> | 2011-08-19 13:10:36 +0200 |
---|---|---|
committer | Christian Kamm <christian.d.kamm@nokia.com> | 2011-08-19 14:24:05 +0200 |
commit | d8c053b5254ea557b51c3b62be68d4a6752a79df (patch) | |
tree | c86c8750ad791e2e37079de0d7ed20ddc0b91670 /src/libs/cplusplus/LookupContext.h | |
parent | f51511a81d82eea9e02351b8a97bbc4111793d8b (diff) | |
download | qt-creator-d8c053b5254ea557b51c3b62be68d4a6752a79df.tar.gz |
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>
Diffstat (limited to 'src/libs/cplusplus/LookupContext.h')
-rw-r--r-- | src/libs/cplusplus/LookupContext.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/libs/cplusplus/LookupContext.h b/src/libs/cplusplus/LookupContext.h index a985a2402f..578e19b094 100644 --- a/src/libs/cplusplus/LookupContext.h +++ b/src/libs/cplusplus/LookupContext.h @@ -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; }; |