llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang-format

Author: Ilya Biryukov (ilya-biryukov)

<details>
<summary>Changes</summary>

Change is originally authored by Daniel Jasper, who asked me to send this PR 
upstream.

---
Full diff: https://github.com/llvm/llvm-project/pull/169037.diff


3 Files Affected:

- (modified) clang/lib/Format/Format.cpp (+4) 
- (modified) clang/unittests/Format/ConfigParseTest.cpp (+1) 
- (modified) clang/unittests/Format/FormatTestMacroExpansion.cpp (+8) 


``````````diff
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp
index 9bbb33cb14502..20ea81cf429cc 100644
--- a/clang/lib/Format/Format.cpp
+++ b/clang/lib/Format/Format.cpp
@@ -1961,6 +1961,10 @@ FormatStyle getGoogleStyle(FormatStyle::LanguageKind 
Language) {
   GoogleStyle.PenaltyBreakBeforeFirstCallParameter = 1;
   GoogleStyle.PenaltyReturnTypeOnItsOwnLine = 200;
 
+  GoogleStyle.Macros.push_back("ASSIGN_OR_RETURN(a, b)=a = (b)");
+  GoogleStyle.Macros.push_back(
+      "ASSIGN_OR_RETURN(a, b, c)=a = (b); if (x) return c");
+
   if (Language == FormatStyle::LK_Java) {
     GoogleStyle.AlignAfterOpenBracket = false;
     GoogleStyle.AlignOperands = FormatStyle::OAS_DontAlign;
diff --git a/clang/unittests/Format/ConfigParseTest.cpp 
b/clang/unittests/Format/ConfigParseTest.cpp
index d578fa7a1a1e8..1e1621d8422e9 100644
--- a/clang/unittests/Format/ConfigParseTest.cpp
+++ b/clang/unittests/Format/ConfigParseTest.cpp
@@ -967,6 +967,7 @@ TEST(ConfigParseTest, ParsesConfiguration) {
               std::vector<std::string>({"QUNUSED", "QT_REQUIRE_VERSION"}));
 
   CHECK_PARSE_LIST(JavaImportGroups);
+  Style.Macros.clear();
   CHECK_PARSE_LIST(Macros);
   CHECK_PARSE_LIST(MacrosSkippedByRemoveParentheses);
   CHECK_PARSE_LIST(NamespaceMacros);
diff --git a/clang/unittests/Format/FormatTestMacroExpansion.cpp 
b/clang/unittests/Format/FormatTestMacroExpansion.cpp
index d391fe3d715c3..0b15f21be0ddf 100644
--- a/clang/unittests/Format/FormatTestMacroExpansion.cpp
+++ b/clang/unittests/Format/FormatTestMacroExpansion.cpp
@@ -63,6 +63,14 @@ TEST_F(FormatTestMacroExpansion, UnexpandConfiguredMacros) {
                "ReturnMe());",
                Style);
 
+  verifyFormat("void f() {\n"
+               "  ASSIGN_OR_RETURN(MySomewhatLongType* variable,\n"
+               "                   MySomewhatLongFunction(SomethingElse()));\n"
+               "  ASSIGN_OR_RETURN(MySomewhatLongType* variable,\n"
+               "                   MySomewhatLongFunction(SomethingElse()), "
+               "ReturnMe());",
+               getGoogleStyle());
+
   verifyFormat(R"(
 #define MACRO(a, b) ID(a + b)
 )",

``````````

</details>


https://github.com/llvm/llvm-project/pull/169037
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to