gribozavr2 accepted this revision.
gribozavr2 added inline comments.
This revision is now accepted and ready to land.


================
Comment at: clang/lib/Tooling/Syntax/BuildTree.cpp:149
+  case OO_PipePipe:
+  // Less common binary operators
+  case OO_ArrowStar:
----------------
Please drop this comment, I don't think it helps understand the code.


================
Comment at: clang/unittests/Tooling/Syntax/TreeTest.cpp:2192
       R"cpp(
+class osstream {};
 struct X {
----------------
I don't think we need a separate class to show the left shift operator. The 
declaration below can be:

```
  friend X operator<<(X&, const X&);
```


================
Comment at: clang/unittests/Tooling/Syntax/TreeTest.cpp:2199
+  X operator,(X&);
+  // TODO: Test for `->*`. Fix crash before
 };
----------------
"TODO: Fix the crash on `->*` and add a test for it."


================
Comment at: clang/unittests/Tooling/Syntax/TreeTest.cpp:2376
+    | | |   `-x
+    | | `-IdExpression
+    | |   `-UnqualifiedId
----------------
eduucaldas wrote:
> gribozavr2 wrote:
> > I'm not sure about this part where `++` is wrapped in IdExpression -- 
> > shouldn't the syntax tree look identical to a builtin postfix `++` (see 
> > another test in this file)?
> This comes back to a discussion we had a month ago about operators ( `+`, 
> `!`, etc)
> **Question**: Should we represent operators (built-in or overloaded) in the 
> syntax tree uniformly? If so in which way?
> **Context**: The ClangAST stores built-in operators as mere tokens, whereas 
> overloaded operators are represented as a `DeclRefExpr`. That makes a lot of 
> sense for the ClangAST, as we might refer back to the declaration of the 
> overloaded operator, but the declaration of built-in operator doesn't exist.
> **Conclusion**: Have the same representation for both types of operators. I 
> have implemented the "unboxed" representation of overloaded operators, i.e. 
> just storing their token in the syntax tree. I have not committed that, but I 
> can do it just after this patch.
SGTM. Please just leave a FIXME or TODO in this patch that shows that certain 
parts of tests are not final.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D82954



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

Reply via email to