aaron.ballman added inline comments.

================
Comment at: clang/lib/ASTMatchers/Dynamic/Marshallers.h:948
+          return {};
+        auto VM = Arg.Value.getMatcher();
+        if (VM.hasTypedMatcher(NK)) {
----------------
Note, this is an example of why use of `auto` is discouraged in the project 
when the type is not spelled out explicitly in the initialization -- this was 
accidentally creating a non-const copy of the `VariantMatcher`, not getting a 
const reference as `getMatcher()` returns. Not the worst problem in the world, 
but it takes a lot of review effort to find these issues when you use `auto`, 
which is why the guidance is what it is.


================
Comment at: clang/lib/ASTMatchers/Dynamic/Marshallers.h:950
+        if (VM.hasTypedMatcher(NK)) {
+          auto DM = VM.getTypedMatcher(NK);
+          InnerArgs.push_back(DM);
----------------
Rather than have a has/get pair, would it make sense to have a get method that 
returns an `Optional` so that we don't have to check the same thing twice?


================
Comment at: clang/lib/ASTMatchers/Dynamic/Marshallers.h:988
+      *LeastDerivedKind = CladeNodeKind;
+    return true;
   }
----------------
We used to traverse the list of matcher functions to see if one is convertible 
or not and now we're always assuming that the conversion is fine -- was that 
previous checking unnecessary or has it been subsumed by checking somewhere 
else?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D94879

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

Reply via email to