This revision was automatically updated to reflect the committed changes. Closed by commit rG70ae843d9980: clang-format: [JS] do not wrap after `asserts` (authored by mprobst).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D100953/new/ https://reviews.llvm.org/D100953 Files: clang/lib/Format/TokenAnnotator.cpp clang/unittests/Format/FormatTestJS.cpp Index: clang/unittests/Format/FormatTestJS.cpp =================================================================== --- clang/unittests/Format/FormatTestJS.cpp +++ clang/unittests/Format/FormatTestJS.cpp @@ -2589,5 +2589,20 @@ "}\n"); } +TEST_F(FormatTestJS, NoBreakAfterAsserts) { + verifyFormat( + "interface Assertable<State extends {}> {\n" + " assert<ExportedState extends {}, DependencyState extends State = " + "State>(\n" + " callback: Callback<ExportedState, DependencyState>):\n" + " asserts this is ExtendedState<DependencyState&ExportedState>;\n" + "}\n", + "interface Assertable<State extends {}> {\n" + " assert<ExportedState extends {}, DependencyState extends State = " + "State>(callback: Callback<ExportedState, DependencyState>): asserts " + "this is ExtendedState<DependencyState&ExportedState>;\n" + "}\n"); +} + } // namespace format } // end namespace clang Index: clang/lib/Format/TokenAnnotator.cpp =================================================================== --- clang/lib/Format/TokenAnnotator.cpp +++ clang/lib/Format/TokenAnnotator.cpp @@ -3853,6 +3853,9 @@ Left.isOneOf(tok::r_square, tok::r_paren)) && Right.isOneOf(tok::l_square, tok::l_paren)) return false; // Otherwise automatic semicolon insertion would trigger. + if (NonComment && NonComment->is(tok::identifier) && + NonComment->TokenText == "asserts") + return false; if (Left.is(TT_JsFatArrow) && Right.is(tok::l_brace)) return false; if (Left.is(TT_JsTypeColon))
Index: clang/unittests/Format/FormatTestJS.cpp =================================================================== --- clang/unittests/Format/FormatTestJS.cpp +++ clang/unittests/Format/FormatTestJS.cpp @@ -2589,5 +2589,20 @@ "}\n"); } +TEST_F(FormatTestJS, NoBreakAfterAsserts) { + verifyFormat( + "interface Assertable<State extends {}> {\n" + " assert<ExportedState extends {}, DependencyState extends State = " + "State>(\n" + " callback: Callback<ExportedState, DependencyState>):\n" + " asserts this is ExtendedState<DependencyState&ExportedState>;\n" + "}\n", + "interface Assertable<State extends {}> {\n" + " assert<ExportedState extends {}, DependencyState extends State = " + "State>(callback: Callback<ExportedState, DependencyState>): asserts " + "this is ExtendedState<DependencyState&ExportedState>;\n" + "}\n"); +} + } // namespace format } // end namespace clang Index: clang/lib/Format/TokenAnnotator.cpp =================================================================== --- clang/lib/Format/TokenAnnotator.cpp +++ clang/lib/Format/TokenAnnotator.cpp @@ -3853,6 +3853,9 @@ Left.isOneOf(tok::r_square, tok::r_paren)) && Right.isOneOf(tok::l_square, tok::l_paren)) return false; // Otherwise automatic semicolon insertion would trigger. + if (NonComment && NonComment->is(tok::identifier) && + NonComment->TokenText == "asserts") + return false; if (Left.is(TT_JsFatArrow) && Right.is(tok::l_brace)) return false; if (Left.is(TT_JsTypeColon))
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits