From f0682231338937310cf8cefe5843470dfffaee97 Mon Sep 17 00:00:00 2001 From: Przemyslaw Gorszkowski Date: Wed, 17 Jul 2013 13:21:12 +0200 Subject: [PATCH] C++: fix tooltip for constantValue of enumeratorDeclaration E.g.: enum E { x = 1 + 2 + 1 }; constantValue for enumeratorDeclaration currently is equal: '1+2+1' (spaces between are removed). Fixed version produces "1 + 2 + 1". Change-Id: I38f7703bd5c856c28aadeecd7f7923aa4a7da422 Reviewed-by: Nikolai Kosjar --- src/libs/3rdparty/cplusplus/Bind.cpp | 7 +++---- src/libs/3rdparty/cplusplus/Bind.h | 3 +-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/libs/3rdparty/cplusplus/Bind.cpp b/src/libs/3rdparty/cplusplus/Bind.cpp index 663f87f48a1..cb69289770c 100644 --- a/src/libs/3rdparty/cplusplus/Bind.cpp +++ b/src/libs/3rdparty/cplusplus/Bind.cpp @@ -476,7 +476,7 @@ void Bind::enumerator(EnumeratorAST *ast, Enum *symbol) e->setType(control()->integerType(IntegerType::Int)); // ### introduce IntegerType::Enumerator if (ExpressionAST *expr = ast->expression) - e->setConstantValue(asStringLiteral(expr->firstToken(), expr->lastToken(), false)); + e->setConstantValue(asStringLiteral(expr->firstToken(), expr->lastToken())); symbol->addMember(e); } @@ -1137,13 +1137,12 @@ FullySpecifiedType Bind::trailingReturnType(TrailingReturnTypeAST *ast, const Fu return type; } -const StringLiteral *Bind::asStringLiteral(unsigned firstToken, unsigned lastToken, - bool addWhitespace) +const StringLiteral *Bind::asStringLiteral(unsigned firstToken, unsigned lastToken) { std::string buffer; for (unsigned index = firstToken; index != lastToken; ++index) { const Token &tk = tokenAt(index); - if (addWhitespace && (tk.whitespace() || tk.newline())) + if (index != firstToken && (tk.whitespace() || tk.newline())) buffer += ' '; buffer += tk.spell(); } diff --git a/src/libs/3rdparty/cplusplus/Bind.h b/src/libs/3rdparty/cplusplus/Bind.h index d920c8e9600..9fdab3f9054 100644 --- a/src/libs/3rdparty/cplusplus/Bind.h +++ b/src/libs/3rdparty/cplusplus/Bind.h @@ -105,8 +105,7 @@ protected: void capture(CaptureAST *ast); void lambdaDeclarator(LambdaDeclaratorAST *ast); FullySpecifiedType trailingReturnType(TrailingReturnTypeAST *ast, const FullySpecifiedType &init); - const StringLiteral *asStringLiteral(unsigned firstToken, unsigned lastToken, - bool addWhitespace = true); + const StringLiteral *asStringLiteral(unsigned firstToken, unsigned lastToken); virtual bool preVisit(AST *); virtual void postVisit(AST *);