diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -1542,7 +1542,7 @@ // Try to parse the property accessor: // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/properties Tokens->setPosition(StoredPosition); - if (Style.BraceWrapping.AfterFunction == true) + if (!IsTrivialPropertyAccessor && Style.BraceWrapping.AfterFunction == true) addUnwrappedLine(); nextToken(); do { diff --git a/clang/unittests/Format/FormatTestCSharp.cpp b/clang/unittests/Format/FormatTestCSharp.cpp --- a/clang/unittests/Format/FormatTestCSharp.cpp +++ b/clang/unittests/Format/FormatTestCSharp.cpp @@ -245,13 +245,11 @@ "}"); verifyFormat("[TestMethod]\n" - "public string Host\n" - "{ set; get; }"); + "public string Host { set; get; }"); verifyFormat("[TestMethod(\"start\", HelpText = \"Starts the server " "listening on provided host\")]\n" - "public string Host\n" - "{ set; get; }"); + "public string Host { set; get; }"); verifyFormat( "[DllImport(\"Hello\", EntryPoint = \"hello_world\")]\n" @@ -711,13 +709,6 @@ Style.BraceWrapping.AfterFunction = true; verifyFormat(R"(// -public class SaleItem { - public decimal Price - { get; set; } -})", - Style); - - verifyFormat(R"(// class TimePeriod { public double Hours { @@ -730,6 +721,17 @@ } })", Style); + + // Microsoft style trivial property accessors have no line break before the + // opening brace. + auto MicrosoftStyle = getMicrosoftStyle(FormatStyle::LK_CSharp); + verifyFormat(R"(// +public class SaleItem +{ + public decimal Price { get; set; } +})", + MicrosoftStyle); + } TEST_F(FormatTestCSharp, CSharpSpaces) {