summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-08-09 17:17:50 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-08-09 17:17:50 +0200
commit646baadb590b55e72b9c2f0c1f3b9e84cf656d45 (patch)
tree186dba484cb5a179a50b2329c99d5eafc9efe766 /src/shared/cplusplus
parent633580d7f383df4a2b934462085e8e8d5b0a17b8 (diff)
downloadqt-creator-646baadb590b55e72b9c2f0c1f3b9e84cf656d45.tar.gz
Annotate EnumSpecifierASTs with the Enum symbols.
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r--src/shared/cplusplus/AST.h4
-rw-r--r--src/shared/cplusplus/CheckSpecifier.cpp1
2 files changed, 5 insertions, 0 deletions
diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h
index 2bbe99e2c6..b1c93cf433 100644
--- a/src/shared/cplusplus/AST.h
+++ b/src/shared/cplusplus/AST.h
@@ -1623,6 +1623,9 @@ public:
EnumeratorListAST *enumerator_list;
unsigned rbrace_token;
+public: // annotations
+ Enum *symbol;
+
public:
EnumSpecifierAST()
: enum_token(0)
@@ -1630,6 +1633,7 @@ public:
, lbrace_token(0)
, enumerator_list(0)
, rbrace_token(0)
+ , symbol(0)
{}
virtual EnumSpecifierAST *asEnumSpecifier() { return this; }
diff --git a/src/shared/cplusplus/CheckSpecifier.cpp b/src/shared/cplusplus/CheckSpecifier.cpp
index 87ff373eb3..8e8debdcfc 100644
--- a/src/shared/cplusplus/CheckSpecifier.cpp
+++ b/src/shared/cplusplus/CheckSpecifier.cpp
@@ -407,6 +407,7 @@ bool CheckSpecifier::visit(EnumSpecifierAST *ast)
const Name *name = semantic()->check(ast->name, _scope);
Enum *e = control()->newEnum(sourceLocation, name);
+ ast->symbol = e;
e->members()->setStartOffset(scopeStart);
e->members()->setEndOffset(tokenAt(ast->lastToken() - 1).end());
e->setVisibility(semantic()->currentVisibility());