From d6e09e85f972678cc52d754917c6fb7c24efaed5 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Tue, 19 May 2015 11:51:39 +0000 Subject: [PATCH] clang-format: Improve for-loop formatting. Before: for (SmallVectorImpl::iterator I = Container.begin(), E = Container.end(); I != E; ++I) After: for (SmallVectorImpl::iterator I = Container.begin(), E = Container.end(); I != E; ++I) This fixes llvm.org/PR23544. llvm-svn: 237688 --- clang/lib/Format/TokenAnnotator.cpp | 3 ++- clang/unittests/Format/FormatTest.cpp | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 8088ff667e1f..a20790e8944f 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -568,7 +568,8 @@ private: case tok::comma: if (Contexts.back().InCtorInitializer) Tok->Type = TT_CtorInitializerComma; - else if (Contexts.back().FirstStartOfName && Contexts.size() == 1) { + else if (Contexts.back().FirstStartOfName && + (Contexts.size() == 1 || Line.First->is(tok::kw_for))) { Contexts.back().FirstStartOfName->PartOfMultiVariableDeclStmt = true; Line.IsMultiVariableDeclStmt = true; } diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index d035043b0fe1..5a568f4c0bab 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -557,6 +557,11 @@ TEST_F(FormatTest, FormatsForLoop) { " I = FD->getDeclsInPrototypeScope().begin(),\n" " E = FD->getDeclsInPrototypeScope().end();\n" " I != E; ++I) {\n}"); + verifyFormat("for (SmallVectorImpl::iterator\n" + " I = Container.begin(),\n" + " E = Container.end();\n" + " I != E; ++I) {\n}", + getLLVMStyleWithColumns(76)); verifyFormat( "for (aaaaaaaaaaaaaaaaa aaaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;\n"