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>
This commit is contained in:
Christian Kamm
2011-09-08 08:49:01 +02:00
parent daf6f5fff0
commit 107544bd7b
2 changed files with 1 additions and 7 deletions

View File

@@ -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;

View File

@@ -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
{