aaron.ballman added a comment.

In D57267#1391101 <https://reviews.llvm.org/D57267#1391101>, @riccibruno wrote:

> > I don't think there was an explicit reason beyond "I didn't need to do it 
> > at the time". So probably just an oversight on my part. I don't know the 
> > code nearly as well as @rnk, so I could be wrong, but I think the existing 
> > tests should tell you if something went haywire if you skip FullExprs.
>
> I see. I am a bit weary about relying on test coverage to validate a change. 
> It is certainly a necessary condition but I am not sure that it is a 
> sufficient condition.
>
> > Yes, @rsmith asked me to skip all FullExprs, but that change did not pass 
> > tests, so I only made IgnoreParens ignore ConstantExpr to preserve existing 
> > behavior. There is no good design reason for it to be that way, and if you 
> > can adjust the callers to account for the new behavior, I think making them 
> > consistent would be good.
>
> I agree, but for now what I would like to do is just make sure that 
> `IgnoreParenImpCasts` skips, among other things, every node skipped by 
> `IgnoreImpCasts`. Not doing so is highly misleading given the names. (An 
> other fun one is that you would think that `IgnoreParenImpCasts()` = 
> `IgnoreParens()` + `IgnoreImpCasts()` but sadly that's not the case since 
> `IgnoreParenImpCasts()` skips additionally `MaterializeTemporaryExpr` and 
> `SubstNonTypeTemplateParmExpr`, even though `IgnoreParenCasts()` = 
> `IgnoreParens()` + `IgnoreCasts()`).


FWIW, I was rather disappointed in a recent review to learn that 
`IgnoreParens()` means "ignore parens... and a whole bunch of other stuff like 
generic selection expressions".


Repository:
  rC Clang

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

https://reviews.llvm.org/D57267



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

Reply via email to