]> granicus.if.org Git - clang/commitdiff
clang-format: [Java] Support try/catch/finally blocks.
authorDaniel Jasper <djasper@google.com>
Sun, 2 Nov 2014 19:21:48 +0000 (19:21 +0000)
committerDaniel Jasper <djasper@google.com>
Sun, 2 Nov 2014 19:21:48 +0000 (19:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221104 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/UnwrappedLineParser.cpp
unittests/Format/FormatTestJava.cpp

index 256fc28720f8add0ae56a0b03ab8b0d236aa5194..aa1bfdc725ef50e2763e3c8ea8d9489e181bad35 100644 (file)
@@ -1174,7 +1174,8 @@ void UnwrappedLineParser::parseTryCatch() {
     --Line->Level;
   }
   while (FormatTok->is(tok::kw_catch) ||
-         (Style.Language == FormatStyle::LK_JavaScript &&
+         ((Style.Language == FormatStyle::LK_Java ||
+           Style.Language == FormatStyle::LK_JavaScript) &&
           FormatTok->TokenText == "finally")) {
     nextToken();
     while (FormatTok->isNot(tok::l_brace)) {
index 73a1848e62c5c5e498121c14fb68074f1ae65864..62b3e92edc103b24cb8b5e7fbc28b0a0a8ef42b2 100644 (file)
@@ -127,5 +127,31 @@ TEST_F(FormatTestJava, StringConcatenation) {
                "                    + \"cde\";");
 }
 
+TEST_F(FormatTestJava, TryCatchFinally) {
+  verifyFormat("try {\n"
+               "  Something();\n"
+               "} catch (SomeException e) {\n"
+               "  HandleException(e);\n"
+               "}");
+  verifyFormat("try {\n"
+               "  Something();\n"
+               "} finally {\n"
+               "  AlwaysDoThis();\n"
+               "}");
+  verifyFormat("try {\n"
+               "  Something();\n"
+               "} catch (SomeException e) {\n"
+               "  HandleException(e);\n"
+               "} finally {\n"
+               "  AlwaysDoThis();\n"
+               "}");
+
+  verifyFormat("try {\n"
+               "  Something();\n"
+               "} catch (SomeException | OtherException e) {\n"
+               "  HandleException(e);\n"
+               "}");
+}
+
 } // end namespace tooling
 } // end namespace clang