llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-format Author: None (c8ef) <details> <summary>Changes</summary> close: #<!-- -->94181 --- Full diff: https://github.com/llvm/llvm-project/pull/94560.diff 2 Files Affected: - (modified) clang/lib/Format/ContinuationIndenter.cpp (+5) - (modified) clang/unittests/Format/FormatTest.cpp (+25) ``````````diff diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index 6b9fbfe0ebf53..630a4ebff9843 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -1457,6 +1457,11 @@ unsigned ContinuationIndenter::getNewLineColumn(const LineState &State) { !Current.isOneOf(tok::colon, tok::comment)) { return ContinuationIndent; } + if (Style.isCpp() && Current.is(tok::arrow) && + Previous.isOneOf(tok::kw_noexcept, tok::kw_mutable, tok::kw_constexpr, + tok::kw_consteval, tok::kw_static)) { + return ContinuationIndent; + } if (Current.is(TT_ProtoExtensionLSquare)) return CurrentState.Indent; if (Current.isBinaryOperator() && CurrentState.UnindentOperator) { diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index 4e427268fb82a..d117efc06c2a7 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -22858,6 +22858,31 @@ TEST_F(FormatTest, FormatsLambdas) { " //\n" " });"); + verifyFormat("int main() {\n" + " very_long_function_name_yes_it_is_really_long(\n" + " [](auto n)\n" + " -> std::unordered_map<very_long_type_name_A, " + "very_long_type_name_B> {\n" + " really_do_something();\n" + " });\n" + "}"); + verifyFormat("int main() {\n" + " very_long_function_name_yes_it_is_really_long(\n" + " [](auto n) noexcept\n" + " -> std::unordered_map<very_long_type_name_A, " + "very_long_type_name_B> {\n" + " really_do_something();\n" + " });\n" + "}"); + verifyFormat("int main() {\n" + " very_long_function_name_yes_it_is_really_long(\n" + " [](auto n) constexpr\n" + " -> std::unordered_map<very_long_type_name_A, " + "very_long_type_name_B> {\n" + " really_do_something();\n" + " });\n" + "}"); + FormatStyle DoNotMerge = getLLVMStyle(); DoNotMerge.AllowShortLambdasOnASingleLine = FormatStyle::SLS_None; verifyFormat("auto c = []() {\n" `````````` </details> https://github.com/llvm/llvm-project/pull/94560 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits