martong added a comment.

In D80366#2059765 <https://reviews.llvm.org/D80366#2059765>, @martong wrote:

> In this version of the patch you are using `handleConstructionContext` to 
> "retrieve" or read an SVal for the construction. However, it seems like that 
> function was designed to store values in the GDM for individual construction 
> context items. To mix a read-only functionality into a setter seems to be 
> error-prone to me.
>
> > Please instead re-use the code that computes the object under construction. 
> > That'll save you ~50 lines of code and will be more future-proof
>
> I am not sure that this is the best option here. In my viewpoint, 
> ConstructionContext and ConstructionContextItem are both "variants" (i.e. 
> tagged unions) and we perform operations on these. Each operation is actually 
> a visitation on the different kind of values (i.e. a switch). One operation 
> is transforming a ConstructionContext to a ConstructionContextItem. This is 
> what is needed to be able to call the getObjectUnderConstruction function. 
> And this operation - the reading - is way different than the other - the 
> store -, see Adam's concerns. This yields to different functions for each op. 
> But this is perfectly natural once we work with "variants". I mean we can 
> easily extend the operations on a variant with a new operation as a form of a 
> visitation of the kinds (contrary to traditional class hierarchies where 
> adding a new op is hard, but adding a new type is easy).


Just one more thing. It may turn out that the visitation should be done the 
same way in both cases, then we have to have a Visitor factored out. But, now 
it seems that even the visitation strategy is different for the individual 
operations.


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

https://reviews.llvm.org/D80366



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

Reply via email to