summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/CheckSpecifier.cpp
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@nokia.com>2010-07-16 15:26:37 +0200
committerErik Verbruggen <erik.verbruggen@nokia.com>2010-07-16 16:04:58 +0200
commitcb4104e171e5c41ef44c0b9a59d3dcc337d765eb (patch)
tree478cdd6501479eb2f38c0a9a0f17562944248de9 /src/shared/cplusplus/CheckSpecifier.cpp
parent03402a07d9b2f12ee4f0cbfbca16d27a10e8eef0 (diff)
downloadqt-creator-cb4104e171e5c41ef44c0b9a59d3dcc337d765eb.tar.gz
Changed startOffset to point to the start of the scope.
Diffstat (limited to 'src/shared/cplusplus/CheckSpecifier.cpp')
-rw-r--r--src/shared/cplusplus/CheckSpecifier.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/shared/cplusplus/CheckSpecifier.cpp b/src/shared/cplusplus/CheckSpecifier.cpp
index 422bd7f3c4..ce5b6a38e2 100644
--- a/src/shared/cplusplus/CheckSpecifier.cpp
+++ b/src/shared/cplusplus/CheckSpecifier.cpp
@@ -310,9 +310,13 @@ bool CheckSpecifier::visit(ClassSpecifierAST *ast)
if (ast->name)
sourceLocation = ast->name->firstToken();
+ unsigned classScopeStart = tokenAt(ast->firstToken()).offset;
+ if (ast->lbrace_token)
+ classScopeStart = tokenAt(ast->lbrace_token).end();
+
const Name *className = semantic()->check(ast->name, _scope);
Class *klass = control()->newClass(sourceLocation, className);
- klass->setStartOffset(tokenAt(ast->firstToken()).offset);
+ klass->setStartOffset(classScopeStart);
klass->setEndOffset(tokenAt(ast->lastToken() - 1).end());
ast->symbol = klass;
unsigned classKey = tokenKind(ast->classkey_token);
@@ -397,9 +401,13 @@ bool CheckSpecifier::visit(EnumSpecifierAST *ast)
if (ast->name)
sourceLocation = ast->name->firstToken();
+ unsigned scopeStart = tokenAt(ast->firstToken()).offset;
+ if (ast->lbrace_token)
+ scopeStart = tokenAt(ast->lbrace_token).end();
+
const Name *name = semantic()->check(ast->name, _scope);
Enum *e = control()->newEnum(sourceLocation, name);
- e->setStartOffset(tokenAt(ast->firstToken()).offset);
+ e->setStartOffset(scopeStart);
e->setEndOffset(tokenAt(ast->lastToken() - 1).end());
e->setVisibility(semantic()->currentVisibility());
_scope->enterSymbol(e);