[PATCH] D135466: [clang-format] Add support to remove unnecessary semicolons after function definition

Owen Pan via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Oct 8 20:33:48 PDT 2022


owenpan added a comment.

Since this option doesn't work for empty functions yet, we should either add a note in the documentation or qualify the scope with "non-empty" as suggested in my comments.



================
Comment at: clang/docs/ReleaseNotes.rst:528
 ------------
+- Add `RemoveSemicolon` option for removing unnecessary `;` after a function definition.
 
----------------
IMO "unnecessary" is unnecessary. Add "non-empty" if we want to be exact.


================
Comment at: clang/include/clang/Format/Format.h:3058
 
+  /// Remove redundant semicolons after the closing brace of a function
+  /// \warning
----------------
Now I feel it's probably better to not add "redundant".


================
Comment at: clang/include/clang/Format/Format.h:3068
+  ///   int max(int a, int b)                      int max(int a, int b)
+  ///   {                                          {
+  ///     return a > b ? a : b;                            return a > b ? a : b;
----------------
Nit: unwrap the braces.


================
Comment at: clang/lib/Format/UnwrappedLineParser.cpp:992-997
+  // When this is a function block and there is an unnecessary semicolon
+  // afterwards then mark it as optional (so the RemoveSemi pass can get rid of
+  // it later).
+  if (MunchSemi && FormatTok->is(tok::semi)) {
     nextToken();
+  }
----------------
Move the comments to line 965 and elide the braces.


================
Comment at: clang/unittests/Format/FormatTest.cpp:26773
+               Style);
+
+  // These tests are here to show a problem that may not be easily
----------------
Add the test case if it will pass.


================
Comment at: clang/unittests/Format/FormatTest.cpp:26780-26786
+  verifyFormat("void main(){};", "void main() {};", Style);
+  verifyFormat("void foo(){}; //\n"
+               ";\n"
+               "int bar;",
+               "void foo(){}; //\n"
+               "; int bar;",
+               Style);
----------------
And edit the comments above.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D135466/new/

https://reviews.llvm.org/D135466



More information about the cfe-commits mailing list