ymandel added a comment.

In D82226#2116931 <https://reviews.llvm.org/D82226#2116931>, @gribozavr2 wrote:

> In D82226#2115406 <https://reviews.llvm.org/D82226#2115406>, @asoffer wrote:
>
> > I think the tradeoff here is 
> >  Dynamic typing -- faster compile times, type safety checked at run-time 
> > (in tests), lower maintenance cost
> >  Templates -- Faster runtime, type safety checked at compile-time, better 
> > user expereience
>
>
> For me, the more important part of the tradeoff is whether we will have one 
> type or multiple. If we use Any, then all `AtomicChange` regardless of what 
> produced them, will have the same type. If we use templates, then 
> `AtomicChange<T>` is a different type from `AtomicChange<U>`. So based on 
> that I think using Any is a better choice, since infrastructure code would 
> want to handle with `AtomicChange` objects and not have to be implemented as 
> a template over arbitrary metadata type.


I'm convinced (both yours and Andy's arguments). Andy, please consider whether 
any of this belongs in comments. (I don't have much opinion).

> Regarding the metadata itself, WDYT about using a map from string to any 
> instead of just one any? This way multiple layers of the system would be able 
> to attach metadata without interfering.

Sounds good, but I'm fine either way.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D82226



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

Reply via email to