diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2009-03-03 13:46:37 +0100 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2009-03-03 13:57:08 +0100 |
commit | 3d6f7de90929971a25fcab12ad569b6bf6db92de (patch) | |
tree | 87b6f4482ec2e8781d7983080956a05d64434613 /src/shared/cplusplus/CheckSpecifier.cpp | |
parent | fb44054c3251f283b6774ae1edcbc989f467180d (diff) | |
download | qt-creator-3d6f7de90929971a25fcab12ad569b6bf6db92de.tar.gz |
Context-sensitive highlighting.
Diffstat (limited to 'src/shared/cplusplus/CheckSpecifier.cpp')
-rw-r--r-- | src/shared/cplusplus/CheckSpecifier.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/shared/cplusplus/CheckSpecifier.cpp b/src/shared/cplusplus/CheckSpecifier.cpp index cd26423cfd..e79f6aa0ba 100644 --- a/src/shared/cplusplus/CheckSpecifier.cpp +++ b/src/shared/cplusplus/CheckSpecifier.cpp @@ -296,8 +296,13 @@ bool CheckSpecifier::visit(SimpleSpecifierAST *ast) bool CheckSpecifier::visit(ClassSpecifierAST *ast) { + unsigned sourceLocation = ast->firstToken(); + + if (ast->name) + sourceLocation = ast->name->firstToken(); + Name *className = semantic()->check(ast->name, _scope); - Class *klass = control()->newClass(ast->firstToken(), className); + Class *klass = control()->newClass(sourceLocation, className); ast->symbol = klass; unsigned classKey = tokenKind(ast->classkey_token); if (classKey == T_CLASS) @@ -358,8 +363,12 @@ bool CheckSpecifier::visit(ElaboratedTypeSpecifierAST *ast) bool CheckSpecifier::visit(EnumSpecifierAST *ast) { + unsigned sourceLocation = ast->firstToken(); + if (ast->name) + sourceLocation = ast->name->firstToken(); + Name *name = semantic()->check(ast->name, _scope); - Enum *e = control()->newEnum(ast->firstToken(), name); + Enum *e = control()->newEnum(sourceLocation, name); e->setVisibility(semantic()->currentVisibility()); _scope->enterSymbol(e); _fullySpecifiedType.setType(e); |