summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/LookupContext.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/cplusplus/LookupContext.h')
-rw-r--r--src/libs/cplusplus/LookupContext.h9
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;
};