diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-08-13 18:16:17 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-08-13 18:16:17 +0200 |
commit | e306254f502e16e163d45d458703899db5c6a7fc (patch) | |
tree | 2fe214e1f28f3a01ebc989788ca37065e6ab6796 /src/shared/cplusplus | |
parent | b3764bedeef6a217dc8d0ae0fc4e05975ce1f273 (diff) | |
download | qt-creator-e306254f502e16e163d45d458703899db5c6a7fc.tar.gz |
Fixed the ranges for the scope regions and process ConditionAST nodes
Diffstat (limited to 'src/shared/cplusplus')
-rw-r--r-- | src/shared/cplusplus/Bind.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/shared/cplusplus/Bind.cpp b/src/shared/cplusplus/Bind.cpp index 9b5fe050ec..54688596af 100644 --- a/src/shared/cplusplus/Bind.cpp +++ b/src/shared/cplusplus/Bind.cpp @@ -1178,7 +1178,7 @@ bool Bind::visit(ExpressionStatementAST *ast) bool Bind::visit(ForeachStatementAST *ast) { Block *block = control()->newBlock(ast->firstToken()); - const unsigned startScopeToken = ast->lparen_token ? ast->lastToken() : ast->firstToken(); + const unsigned startScopeToken = ast->lparen_token ? ast->lparen_token : ast->firstToken(); block->setStartOffset(tokenAt(startScopeToken).end()); block->setEndOffset(tokenAt(ast->lastToken() - 1).end()); _scope->addMember(block); @@ -1210,7 +1210,7 @@ bool Bind::visit(ForeachStatementAST *ast) bool Bind::visit(ForStatementAST *ast) { Block *block = control()->newBlock(ast->firstToken()); - const unsigned startScopeToken = ast->lparen_token ? ast->lastToken() : ast->firstToken(); + const unsigned startScopeToken = ast->lparen_token ? ast->lparen_token : ast->firstToken(); block->setStartOffset(tokenAt(startScopeToken).end()); block->setEndOffset(tokenAt(ast->lastToken() - 1).end()); _scope->addMember(block); @@ -1230,7 +1230,7 @@ bool Bind::visit(ForStatementAST *ast) bool Bind::visit(IfStatementAST *ast) { Block *block = control()->newBlock(ast->firstToken()); - const unsigned startScopeToken = ast->lparen_token ? ast->lastToken() : ast->firstToken(); + const unsigned startScopeToken = ast->lparen_token ? ast->lparen_token : ast->firstToken(); block->setStartOffset(tokenAt(startScopeToken).end()); block->setEndOffset(tokenAt(ast->lastToken() - 1).end()); _scope->addMember(block); @@ -1286,7 +1286,7 @@ bool Bind::visit(ReturnStatementAST *ast) bool Bind::visit(SwitchStatementAST *ast) { Block *block = control()->newBlock(ast->firstToken()); - const unsigned startScopeToken = ast->lparen_token ? ast->lastToken() : ast->firstToken(); + const unsigned startScopeToken = ast->lparen_token ? ast->lparen_token : ast->firstToken(); block->setStartOffset(tokenAt(startScopeToken).end()); block->setEndOffset(tokenAt(ast->lastToken() - 1).end()); _scope->addMember(block); @@ -1312,7 +1312,7 @@ bool Bind::visit(TryBlockStatementAST *ast) bool Bind::visit(CatchClauseAST *ast) { Block *block = control()->newBlock(ast->firstToken()); - const unsigned startScopeToken = ast->lparen_token ? ast->lastToken() : ast->firstToken(); + const unsigned startScopeToken = ast->lparen_token ? ast->lparen_token : ast->firstToken(); block->setStartOffset(tokenAt(startScopeToken).end()); block->setEndOffset(tokenAt(ast->lastToken() - 1).end()); _scope->addMember(block); @@ -1329,7 +1329,7 @@ bool Bind::visit(CatchClauseAST *ast) bool Bind::visit(WhileStatementAST *ast) { Block *block = control()->newBlock(ast->firstToken()); - const unsigned startScopeToken = ast->lparen_token ? ast->lastToken() : ast->firstToken(); + const unsigned startScopeToken = ast->lparen_token ? ast->lparen_token : ast->firstToken(); block->setStartOffset(tokenAt(startScopeToken).end()); block->setEndOffset(tokenAt(ast->lastToken() - 1).end()); _scope->addMember(block); @@ -1345,7 +1345,7 @@ bool Bind::visit(WhileStatementAST *ast) bool Bind::visit(ObjCFastEnumerationAST *ast) { Block *block = control()->newBlock(ast->firstToken()); - const unsigned startScopeToken = ast->lparen_token ? ast->lastToken() : ast->firstToken(); + const unsigned startScopeToken = ast->lparen_token ? ast->lparen_token : ast->firstToken(); block->setStartOffset(tokenAt(startScopeToken).end()); block->setEndOffset(tokenAt(ast->lastToken() - 1).end()); _scope->addMember(block); @@ -1444,6 +1444,14 @@ bool Bind::visit(ConditionAST *ast) } DeclaratorIdAST *declaratorId = 0; type = this->declarator(ast->declarator, type, &declaratorId); + + if (declaratorId && declaratorId->name) { + unsigned sourceLocation = declaratorId->name->firstToken(); + Declaration *decl = control()->newDeclaration(sourceLocation, declaratorId->name->name); + decl->setType(type); + _scope->addMember(decl); + } + return false; } |