[PATCH] D156360: [clang-format] Support function and overloaded operator SpacesInParensOption

Owen Pan via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 9 16:23:34 PST 2023


owenpan added inline comments.


================
Comment at: clang/lib/Format/TokenAnnotator.cpp:3970-4009
   if (Left.is(tok::l_paren) || Right.is(tok::r_paren)) {
     if (Right.is(TT_CastRParen) ||
         (Left.MatchingParen && Left.MatchingParen->is(TT_CastRParen))) {
       return Style.SpacesInParensOptions.InCStyleCasts;
     }
     if (Left.isOneOf(TT_AttributeLParen, TT_AttributeRParen) ||
         Right.isOneOf(TT_AttributeLParen, TT_AttributeRParen) ||
----------------
Consider wrapping this in a function or lambda. Not sure if it would simply the logic with the parens being handled separately:
```
if (Left.is(tok::l_paren)) {
  ...
} else if (Right.is(tok::r_paren)) {
  ...
}


================
Comment at: clang/lib/Format/TokenAnnotator.cpp:3990
+          return Style.SpacesInParensOptions.InFunctionDefinitions;
+        else
+          return Style.SpacesInParensOptions.InFunctionDeclarations;
----------------
No `else` after `return`.


================
Comment at: clang/unittests/Format/FormatTest.cpp:16786
   verifyFormat("SomeType *__attribute__( ( attr ) ) *a = NULL;", Spaces);
-  verifyFormat("void __attribute__( ( naked ) ) foo( int bar )", Spaces);
+  verifyFormat("void __attribute__( ( x ) ) foo(int y) { return; }", Spaces);
   verifyFormat("void f() __attribute__( ( asdf ) );", Spaces);
----------------
gedare wrote:
> HazardyKnusperkeks wrote:
> > Why change this?
> The original test is incomplete/ambiguous. It's either a declaration missing a semicolon, or it's the start of a definition. I made it a definition.
Then can you also add a declaration?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D156360



More information about the cfe-commits mailing list