summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus
diff options
context:
space:
mode:
authorRoberto Raggi <qtc-committer@nokia.com>2009-02-09 11:35:57 +0100
committerRoberto Raggi <qtc-committer@nokia.com>2009-02-09 11:35:57 +0100
commit6672f89ff5d4002366d62c9350a879ab5ccb75db (patch)
tree6fbfde48b4d9202fbce522c9c8213e9196ddddb4 /src/shared/cplusplus
parent1dcabe5a3ab7a0a854bca4ef918fa783c3d50328 (diff)
downloadqt-creator-6672f89ff5d4002366d62c9350a879ab5ccb75db.tar.gz
Annotate the ClassSpecifierAST node with the class symbol.
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r--src/shared/cplusplus/AST.h3
-rw-r--r--src/shared/cplusplus/CheckSpecifier.cpp1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/shared/cplusplus/AST.h b/src/shared/cplusplus/AST.h
index 1918ee7953..f5e3ac42fc 100644
--- a/src/shared/cplusplus/AST.h
+++ b/src/shared/cplusplus/AST.h
@@ -515,6 +515,9 @@ public:
DeclarationAST *member_specifiers;
unsigned rbrace_token;
+public: // annotations
+ Class *class_symbol;
+
public:
virtual unsigned firstToken() const;
virtual unsigned lastToken() const;
diff --git a/src/shared/cplusplus/CheckSpecifier.cpp b/src/shared/cplusplus/CheckSpecifier.cpp
index eeb59eebcc..cb929b868c 100644
--- a/src/shared/cplusplus/CheckSpecifier.cpp
+++ b/src/shared/cplusplus/CheckSpecifier.cpp
@@ -300,6 +300,7 @@ bool CheckSpecifier::visit(ClassSpecifierAST *ast)
{
Name *className = semantic()->check(ast->name, _scope);
Class *klass = control()->newClass(ast->firstToken(), className);
+ ast->class_symbol = klass;
unsigned classKey = tokenKind(ast->classkey_token);
if (classKey == T_CLASS)
klass->setClassKey(Class::ClassKey);