[clang] [clang-format] Add option AllowShortRecordOnASingleLine (PR #154580)

via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 3 00:57:57 PDT 2025


=?utf-8?q?Tom=C3=A1=C5=A1?= Slanina <itzexpoexpo at gmail.com>,
=?utf-8?q?Tom=C3=A1=C5=A1?= Slanina <itzexpoexpo at gmail.com>,
=?utf-8?q?Tom=C3=A1=C5=A1?= Slanina <itzexpoexpo at gmail.com>,
=?utf-8?q?Tom=C3=A1=C5=A1?= Slanina <itzexpoexpo at gmail.com>,
=?utf-8?q?Tom=C3=A1=C5=A1?= Slanina <itzexpoexpo at gmail.com>,
=?utf-8?q?Tom=C3=A1=C5=A1?= Slanina <itzexpoexpo at gmail.com>,
=?utf-8?q?Tom=C3=A1=C5=A1?= Slanina <itzexpoexpo at gmail.com>,
=?utf-8?q?Tom=C3=A1=C5=A1?= Slanina <itzexpoexpo at gmail.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/154580 at github.com>


================
@@ -15277,6 +15290,123 @@ TEST_F(FormatTest, NeverMergeShortRecords) {
                Style);
 }
 
+TEST_F(FormatTest, AllowShortRecordOnASingleLineNonSplit) {
+  FormatStyle Style = getLLVMStyle();
+
+  Style.BreakBeforeBraces = FormatStyle::BS_Custom;
+  Style.BraceWrapping.SplitEmptyRecord = false;
+
+  Style.AllowShortRecordOnASingleLine = FormatStyle::SRS_Never;
+  verifyFormat("class foo {\n"
+               "  void bar();\n"
+               "};",
+               Style);
+  verifyFormat("class foo {\n};", Style);
+
+  Style.AllowShortRecordOnASingleLine = FormatStyle::SRS_EmptyIfAttached;
+  verifyFormat("class foo {\n"
+               "  void bar();\n"
+               "};",
+               Style);
+  verifyFormat("class foo {};", Style);
+
+  Style.AllowShortRecordOnASingleLine = FormatStyle::SRS_Empty;
+  verifyFormat("class foo {\n"
+               "  void bar();\n"
+               "};",
+               Style);
+  verifyFormat("class foo {};", Style);
+
+  Style.AllowShortRecordOnASingleLine = FormatStyle::SRS_Always;
+  verifyFormat("class foo { void bar(); };", Style);
+  verifyFormat("class foo {};", Style);
+
+  Style.BraceWrapping.AfterClass = true;
+  Style.BraceWrapping.AfterStruct = true;
+  Style.BraceWrapping.AfterUnion = true;
+
+  Style.AllowShortRecordOnASingleLine = FormatStyle::SRS_Never;
+  verifyFormat("class foo\n{\n"
+               "  void bar();\n"
+               "};",
+               Style);
+  verifyFormat("class foo\n{};", Style);
+
+  Style.AllowShortRecordOnASingleLine = FormatStyle::SRS_EmptyIfAttached;
+  verifyFormat("class foo\n{\n"
+               "  void bar();\n"
+               "};",
+               Style);
+  verifyFormat("class foo\n{};", Style);
+
+  Style.AllowShortRecordOnASingleLine = FormatStyle::SRS_Empty;
+  verifyFormat("class foo\n{\n"
+               "  void bar();\n"
+               "};",
+               Style);
+  verifyFormat("class foo {};", Style);
+
+  Style.AllowShortRecordOnASingleLine = FormatStyle::SRS_Always;
+  verifyFormat("class foo { void bar(); };", Style);
+  verifyFormat("class foo {};", Style);
+}
+
+TEST_F(FormatTest, AllowShortRecordOnASingleLineSplit) {
+  FormatStyle Style = getLLVMStyle();
+
+  Style.BreakBeforeBraces = FormatStyle::BS_Custom;
+  Style.BraceWrapping.SplitEmptyRecord = true;
----------------
owenca wrote:

This is the default, so use `EXPECT_EQ()` instead.

https://github.com/llvm/llvm-project/pull/154580


More information about the cfe-commits mailing list