From 6d16545c1084dbec7f7752b73b7e54117e2e9b69 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Wed, 26 Nov 2014 12:23:10 +0000 Subject: [PATCH] clang-format: [Java] Improve cast detection. Before: a[b >> 1] = (byte)(c() << 4); After: a[b >> 1] = (byte) (c() << 4); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222827 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/TokenAnnotator.cpp | 10 +++++++--- unittests/Format/FormatTestJava.cpp | 4 ++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 9b32c35601..2e3e2dd612 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -921,15 +921,19 @@ private: LeftOfParens->MatchingParen && LeftOfParens->MatchingParen->is(TT_LambdaLSquare)) return false; + if (Tok.Next) { + if (Style.Language == FormatStyle::LK_JavaScript && + Tok.Next->is(Keywords.kw_in)) + return false; + if (Style.Language == FormatStyle::LK_Java && Tok.Next->is(tok::l_paren)) + return true; + } bool IsCast = false; bool ParensAreEmpty = Tok.Previous == Tok.MatchingParen; bool ParensAreType = !Tok.Previous || Tok.Previous->isOneOf(TT_PointerOrReference, TT_TemplateCloser) || Tok.Previous->isSimpleTypeSpecifier(); - if (Style.Language == FormatStyle::LK_JavaScript && Tok.Next && - Tok.Next->is(Keywords.kw_in)) - return false; bool ParensCouldEndDecl = Tok.Next && Tok.Next->isOneOf(tok::equal, tok::semi, tok::l_brace); bool IsSizeOfOrAlignOf = diff --git a/unittests/Format/FormatTestJava.cpp b/unittests/Format/FormatTestJava.cpp index 5c80babf26..674c13b516 100644 --- a/unittests/Format/FormatTestJava.cpp +++ b/unittests/Format/FormatTestJava.cpp @@ -54,6 +54,10 @@ TEST_F(FormatTestJava, NoAlternativeOperatorNames) { verifyFormat("someObject.and();"); } +TEST_F(FormatTestJava, UnderstandsCasts) { + verifyFormat("a[b >> 1] = (byte) (c() << 4);"); +} + TEST_F(FormatTestJava, FormatsInstanceOfLikeOperators) { FormatStyle Style = getStyleWithColumns(50); verifyFormat("return aaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n" -- 2.40.0