diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Format/TokenAnnotator.cpp | 10 | ||||
-rw-r--r-- | clang/unittests/Format/FormatTestJava.cpp | 4 |
2 files changed, 11 insertions, 3 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 9b32c35601f..2e3e2dd6124 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/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/clang/unittests/Format/FormatTestJava.cpp b/clang/unittests/Format/FormatTestJava.cpp index 5c80babf26e..674c13b516f 100644 --- a/clang/unittests/Format/FormatTestJava.cpp +++ b/clang/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" |