From 107544bd7b91725f11ad794f46eb1ba93b738b6f Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Thu, 8 Sep 2011 08:49:01 +0200 Subject: [PATCH] C++: Set endOffset of Function symbols even if skipping bodies. Fixes insert-definition-from-declaration when the source file was not yet opened in an editor. Change-Id: I4263113390ae4fbe9d4641104b5cb43373ddc5a4 Reviewed-on: http://codereview.qt-project.org/4394 Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com> --- src/libs/3rdparty/cplusplus/Bind.cpp | 7 +------ src/plugins/cpptools/insertionpointlocator.cpp | 1 - 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/libs/3rdparty/cplusplus/Bind.cpp b/src/libs/3rdparty/cplusplus/Bind.cpp index 89ae4015da7..2da94f4b313 100644 --- a/src/libs/3rdparty/cplusplus/Bind.cpp +++ b/src/libs/3rdparty/cplusplus/Bind.cpp @@ -2007,6 +2007,7 @@ bool Bind::visit(FunctionDefinitionAST *ast) if (fun) { setDeclSpecifiers(fun, declSpecifiers); + fun->setEndOffset(tokenAt(ast->lastToken() - 1).end()); if (_scope->isClass()) { fun->setVisibility(_visibility); @@ -2028,12 +2029,6 @@ bool Bind::visit(FunctionDefinitionAST *ast) Scope *previousScope = switchScope(fun); this->statement(ast->function_body); (void) switchScope(previousScope); - - if (CompoundStatementAST *c = ast->function_body->asCompoundStatement()) { - if (c->symbol) { - fun->setEndOffset(c->symbol->endOffset()); - } - } } return false; diff --git a/src/plugins/cpptools/insertionpointlocator.cpp b/src/plugins/cpptools/insertionpointlocator.cpp index 3cd40271448..cee3784433c 100644 --- a/src/plugins/cpptools/insertionpointlocator.cpp +++ b/src/plugins/cpptools/insertionpointlocator.cpp @@ -548,7 +548,6 @@ static InsertionLocation nextToSurroundingDefinitions(Declaration *declaration, return InsertionLocation(definition->fileName(), prefix, suffix, line, column); } -/// Currently, we return the end of fileName.cpp QList<InsertionLocation> InsertionPointLocator::methodDefinition( Declaration *declaration) const { -- GitLab