Author: Jonathan Coe Date: 2020-06-09T14:50:34+01:00 New Revision: f22b0727fe767cc8da5e0c59f4e957a05472ffa7
URL: https://github.com/llvm/llvm-project/commit/f22b0727fe767cc8da5e0c59f4e957a05472ffa7 DIFF: https://github.com/llvm/llvm-project/commit/f22b0727fe767cc8da5e0c59f4e957a05472ffa7.diff LOG: [clang-format] Microsoft style fixes for C# properties Summary: There should be no line break before the opening brace for Microsoft style property accessors when the accessor is a simple `{ get; set }`. https://docs.microsoft.com/en-us/dotnet/csharp/properties Reviewers: krasimir, MyDeveloperDay Reviewed By: krasimir Subscribers: cfe-commits Tags: #clang-format, #clang Differential Revision: https://reviews.llvm.org/D81467 Added: Modified: clang/lib/Format/UnwrappedLineParser.cpp clang/unittests/Format/FormatTestCSharp.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/UnwrappedLineParser.cpp b/clang/lib/Format/UnwrappedLineParser.cpp index 0d488d1dda52..cf9673d51617 100644 --- a/clang/lib/Format/UnwrappedLineParser.cpp +++ b/clang/lib/Format/UnwrappedLineParser.cpp @@ -1542,7 +1542,7 @@ bool UnwrappedLineParser::tryToParsePropertyAccessor() { // 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 index bcf2c7a52141..a2c551e5c25e 100644 --- a/clang/unittests/Format/FormatTestCSharp.cpp +++ b/clang/unittests/Format/FormatTestCSharp.cpp @@ -245,13 +245,11 @@ TEST_F(FormatTestCSharp, Attributes) { "}"); 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" @@ -710,13 +708,6 @@ class MyClass { Style.BreakBeforeBraces = FormatStyle::BS_Custom; 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 @@ class TimePeriod { } })", 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) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits