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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits