xazax.hun accepted this revision. xazax.hun added a comment. This revision is now accepted and ready to land.
LGTM, thanks! ================ Comment at: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h:114 bool isEqualTypeErased(const TypeErasedLattice &E1, const TypeErasedLattice &E2) final { const Lattice &L1 = llvm::any_cast<const Lattice &>(E1.Value); ---------------- ymandel wrote: > xazax.hun wrote: > > Maybe this is another case where we want to mark the whole class `final` > > instead of the individual methods? It is fine to address this in a separate > > PR. > Unfortunately not, since this class is used for CRTP. Whoops, indeed, I missed that. ================ Comment at: clang/include/clang/Analysis/FlowSensitive/DataflowAnalysis.h:135 + // between overloads. + struct Rank1 {}; + struct Rank0 : Rank1 {}; ---------------- ymandel wrote: > xazax.hun wrote: > > Is there ever a reason to instantiate `Rank1`? If no, should we do > > something (like make its ctor private and friends with `Rank0`?). Although > > possibly not important enough to worth the hassle. > No reason to instantiate it that I can see, but since it's a already private > to this class, I think it's good enough. But, I just borrowed this from Eric, > so I'm not an expert in this pattern. Happy to take suggested improvements. Let's leave as is. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137948/new/ https://reviews.llvm.org/D137948 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits