ilya-biryukov wrote:

> My main concern is this line which seems very artificial 
> https://github.com/llvm/llvm-project/pull/99882/files#diff-10901a3bb08d903a57820f09c2eb5f40cb4cd47c54ca3cad472106814c4bf15dR359

Yeah, I can see your point. My north-start vision for that issue is that is 
should all be structural and even `LambdaScopeInfo::ContainsUnexpandedPack`  
should go away in favor of storing `ContainsUnexpandedPack` bit inside `Stmt`.

We could actually get away without having this line, but it's there precisely 
to make sure that parsing and transform get the same outputs. The bugs we are 
trying to fix are an evidence of the fact that parsing is tested more 
rigorously and sharing the same inputs with transform gives more confidence 
that bugs won't show up.

> If we both agree that you would rather centralize everything during 
> transform, I think it's fine but during parsing we already have the 
> information available so we should try to use it - unless I am missing 
> something?

Technically, we *also* have this information during transform in the same way, 
but, unfortunately, it requires a duplicate code path. I think my objections to 
a flag in `LambdaScopeInfo` would be much weaker if we rewrote the code in a 
way that was guaranteed to be shared across parsing and transform (putting it 
in `computeDependence` is just one way to do it).

I'm looking forward to what @zyn0217 comes up with, I'm sure we'll be in a 
better state when his patch lands.

I will close this PR in the meantime to put more focus on #86265.


https://github.com/llvm/llvm-project/pull/99882
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to