From f1f0c356323dba29905c202b29d8d73c38753437 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Tue, 21 Oct 2014 09:25:39 +0000 Subject: [PATCH] clang-format: [Java] Support annotations with parameters. Before: @SuppressWarnings (value = "unchecked") public void doSomething() { .. } After: @SuppressWarnings(value = "unchecked") public void doSomething() { .. } llvm-svn: 220279 --- clang/lib/Format/TokenAnnotator.cpp | 5 ++++- clang/unittests/Format/FormatTestJava.cpp | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index ce3d899..4f32b9f 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -184,6 +184,8 @@ private: if (Left->Type == TT_AttributeParen) CurrentToken->Type = TT_AttributeParen; + if (Left->Previous && Left->Previous->Type == TT_JavaAnnotation) + CurrentToken->Type = TT_JavaAnnotation; if (!HasMultipleLines) Left->PackingKind = PPK_Inconclusive; @@ -1791,7 +1793,8 @@ bool TokenAnnotator::mustBreakBefore(const AnnotatedLine &Line, Left.Previous->is(tok::char_constant)) return true; } else if (Style.Language == FormatStyle::LK_Java) { - if (Left.Type == TT_JavaAnnotation && Line.MightBeFunctionDecl) + if (Left.Type == TT_JavaAnnotation && Right.isNot(tok::l_paren) && + Line.MightBeFunctionDecl) return true; } diff --git a/clang/unittests/Format/FormatTestJava.cpp b/clang/unittests/Format/FormatTestJava.cpp index 18d945d..cf48a7a 100644 --- a/clang/unittests/Format/FormatTestJava.cpp +++ b/clang/unittests/Format/FormatTestJava.cpp @@ -70,6 +70,10 @@ TEST_F(FormatTestJava, Annotations) { verifyFormat("@Override\n" "@Nullable\n" "public String getNameIfPresent() {\n}"); + + verifyFormat("@SuppressWarnings(value = \"unchecked\")\n" + "public void doSomething() {\n}"); + verifyFormat("@Partial @Mock DataLoader loader;"); } -- 2.7.4