steveire marked an inline comment as done.
steveire added inline comments.

================
Comment at: clang/include/clang/ASTMatchers/ASTMatchers.h:5346
+    AST_POLYMORPHIC_SUPPORTED_TYPES(BinaryOperator, CXXOperatorCallExpr,
+                                    CXXRewrittenBinaryOperator)) {
   return Node.isAssignmentOp();
----------------
aaron.ballman wrote:
> This change surprises me -- aren't rewritten binary operators *always* 
> comparison operations? I don't know of a time when they'd ever be an 
> assignment operator.
Yes, which is why the new method in this patch on that class returns `true`.

This makes it possible to write

```
binaryOperation(isComparisonOperator())
binaryOperation(isAssignmentOperator())
```

(possibly with `unless`).


================
Comment at: clang/lib/ASTMatchers/ASTMatchFinder.cpp:260
+
+    auto DCF = Node->getDecomposedForm();
+    if (!match(*DCF.LHS) || !match(*DCF.RHS))
----------------
aaron.ballman wrote:
> Please spell out this use of `auto`.
Please specify what to replace auto with when the replacement is a condition of 
acceptance.

Type noise makes code less readable, especially if the type contains `<`, `>` 
`,`, spaces or `::` or a combination of all of them. There is also ambiguity 
about what part of the type is a namespace, and what is an enclosing class etc. 
Very confusing,

In C++98 typedefs were often used to make that problem less bad. 

The C++11 solution is `auto`.

So, you require that an `auto` must be replaced with something less optimal, 
please be specific about what you require it replaced with. I don't know what 
you want here, but my guess is it is a long type which makes the code less 
readable.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D94130

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to