================
@@ -4842,7 +4842,7 @@ bool TokenAnnotator::spaceRequiredBefore(const 
AnnotatedLine &Line,
     return true;
   }
   if (Left.is(TT_UnaryOperator)) {
-    if (Right.isNot(tok::l_paren)) {
+    if (!Right.isOneOf(tok::r_paren, tok::l_paren, tok::exclaim)) {
----------------
ilya-biryukov wrote:

I have used `!` merely as an example, I feel that we should probably not add 
space for almost all tokens:
```cpp
#define str(X) #X
#define v(X) str(foo##X)

char *x = v(not;);
char *y = v(not+);
```

The only exception I see are identifiers and numeric literals (as they will 
combine the tokens together):
```cpp
v(not x)
v(not 1)
v(not 123.f)
```

Should this condition be something like `if (Right.isOneOf(tok::ident, /*... 
numeric literals*/))`?
Or will this cause us to not add spaces in undesired places?

If we can avoid those spaces for only a limited set of tokens, I would probably 
limit this to `tok::lparen` and `tok::rparen`, the rest seems much less likely.

https://github.com/llvm/llvm-project/pull/78176
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to