[clang] 50d8977 - [clang-format] Allow a comment to follow a C# attribute specifier

Jonathan Coe via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 4 11:01:29 PST 2020


Author: Jonathan Coe
Date: 2020-02-04T19:00:54Z
New Revision: 50d8977c459de302fcef7a2578b0e8f8862a2fe0

URL: https://github.com/llvm/llvm-project/commit/50d8977c459de302fcef7a2578b0e8f8862a2fe0
DIFF: https://github.com/llvm/llvm-project/commit/50d8977c459de302fcef7a2578b0e8f8862a2fe0.diff

LOG: [clang-format] Allow a comment to follow a C# attribute specifier

Summary: Add comments to the list of tokens that can follow the ']' at the end of a C# attribute specifier to prevent comments after attribute specifiers from being formatted as continuations.

Reviewers: MyDeveloperDay, krasimir

Reviewed By: MyDeveloperDay

Tags: #clang-format

Differential Revision: https://reviews.llvm.org/D73977

Added: 
    

Modified: 
    clang/lib/Format/TokenAnnotator.cpp
    clang/unittests/Format/FormatTestCSharp.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp
index f6df58dac2d6..7538b03f4f7c 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -392,8 +392,8 @@ class AnnotatingParser {
 
     // Limit this to being an access modifier that follows.
     if (AttrTok->isOneOf(tok::kw_public, tok::kw_private, tok::kw_protected,
-                         tok::kw_class, tok::kw_static, tok::l_square,
-                         Keywords.kw_internal)) {
+                         tok::comment, tok::kw_class, tok::kw_static,
+                         tok::l_square, Keywords.kw_internal)) {
       return true;
     }
 

diff  --git a/clang/unittests/Format/FormatTestCSharp.cpp b/clang/unittests/Format/FormatTestCSharp.cpp
index 5d1131aa0c3a..86a44d0f9eb3 100644
--- a/clang/unittests/Format/FormatTestCSharp.cpp
+++ b/clang/unittests/Format/FormatTestCSharp.cpp
@@ -228,6 +228,11 @@ TEST_F(FormatTestCSharp, Attributes) {
                "    set;\n"
                "    get;\n"
                "}");
+
+  verifyFormat(
+      "[DllImport(\"Hello\", EntryPoint = \"hello_world\")]\n"
+      "// The const char* returned by hello_world must not be deleted.\n"
+      "private static extern IntPtr HelloFromCpp();)");
 }
 
 TEST_F(FormatTestCSharp, CSharpUsing) {


        


More information about the cfe-commits mailing list