From 81a20787db26abec2fdb4664c1d0cf0bdfd27b31 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Mon, 10 Mar 2014 10:02:02 +0000 Subject: [PATCH] clang-format: Add spaces around trailing/lambda return types. Before: int c = []()->int { return 2; }(); After: int c = []() -> int { return 2; }(); llvm-svn: 203452 --- clang/lib/Format/TokenAnnotator.cpp | 3 ++- clang/lib/Format/UnwrappedLineParser.cpp | 3 +++ clang/unittests/Format/FormatTest.cpp | 6 +++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index b7eb3bfdb4d1..7efeaffc78db 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -583,7 +583,8 @@ private: // recovered from an error (e.g. failure to find the matching >). if (CurrentToken->Type != TT_LambdaLSquare && CurrentToken->Type != TT_FunctionLBrace && - CurrentToken->Type != TT_ImplicitStringLiteral) + CurrentToken->Type != TT_ImplicitStringLiteral && + CurrentToken->Type != TT_TrailingReturnArrow) CurrentToken->Type = TT_Unknown; if (CurrentToken->Role) CurrentToken->Role.reset(NULL); diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index b7de63fd0fc7..6930bd22bc97 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -784,7 +784,10 @@ bool UnwrappedLineParser::tryToParseLambda() { case tok::identifier: case tok::coloncolon: case tok::kw_mutable: + nextToken(); + break; case tok::arrow: + FormatTok->Type = TT_TrailingReturnArrow; nextToken(); break; default: diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 341fb3589a3e..6690103dc1b7 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -7956,9 +7956,9 @@ TEST_F(FormatTest, FormatsLambdas) { "}\n"); // Lambdas with return types. - verifyFormat("int c = []()->int { return 2; }();\n"); - verifyFormat("int c = []()->vector { return {2}; }();\n"); - verifyFormat("Foo([]()->std::vector { return {2}; }());"); + verifyFormat("int c = []() -> int { return 2; }();\n"); + verifyFormat("int c = []() -> vector { return {2}; }();\n"); + verifyFormat("Foo([]() -> std::vector { return {2}; }());"); // Not lambdas. verifyFormat("constexpr char hello[]{\"hello\"};");