From: Daniel Jasper Date: Fri, 7 Feb 2014 10:09:46 +0000 (+0000) Subject: clang-format: Fix range-based for-loop formatting. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7dc61d7338d65b39fcb9853de9c231f6d042f769;p=clang clang-format: Fix range-based for-loop formatting. Before: for (aaaaaaaaa aaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaa.aaaaaaaaaaaa() .aaaaaaaaa() .a()) { } After: for (aaaaaaaaa aaaaaaaaaaaaaaaaaaaaa : aaaaaaaaaaaa.aaaaaaaaaaaa().aaaaaaaaa().a()) { } git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200968 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 92c467a40f..6891930ead 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -986,6 +986,8 @@ private: else if (Current->is(tok::semi) || Current->Type == TT_InlineASMColon || Current->Type == TT_ObjCSelectorName) return 0; + else if (Current->Type == TT_RangeBasedForLoopColon) + return prec::Comma; else if (Current->Type == TT_BinaryOperator || Current->is(tok::comma)) return Current->getPrecedence(); else if (Current->isOneOf(tok::period, tok::arrow)) diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 0f112a13f1..c49faaa0b9 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -416,6 +416,8 @@ TEST_F(FormatTest, RangeBasedForLoops) { " aaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaa, aaaaaaaaaaaaa)) {\n}"); verifyFormat("for (const aaaaaaaaaaaaaaaaaaaaa &aaaaaaaaa :\n" " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {\n}"); + verifyFormat("for (aaaaaaaaa aaaaaaaaaaaaaaaaaaaaa :\n" + " aaaaaaaaaaaa.aaaaaaaaaaaa().aaaaaaaaa().a()) {\n}"); } TEST_F(FormatTest, FormatsWhileLoop) {