ayzhao marked 4 inline comments as done.
ayzhao added a comment.

In D129531#3971392 <https://reviews.llvm.org/D129531#3971392>, @ilya-biryukov 
wrote:

> Thanks!
>
> I have two major comments and also inline NITs. Not sure if we should block 
> on those, just wanted to hear your opinions:
>
> - `InitListExpr` and `CXXParenInitListExpr` have some code in common. Code 
> duplication is substantial and I think sharing the common implementation is 
> warranted. E.g. if some code would want to change something with 
> `ArrayFiller` or make a use of it, the work will probably need to be 
> duplicated. To reiterate what I mentioned earlier, I believe deriving 
> `CXXParenInitListExpr` from `InitListExpr` is not a very good option, but we 
> might explore other possibilities: a base class or factoring out common code 
> in a separate struct. I believe this could be done with a follow-up change, 
> though, as the amount of changes required does not seem too big, I would be 
> happy with first landing this patch and then cleaning up with a follow-up 
> change.
> - Did we explore the possibility of modelling this differently and somehow 
> avoiding making `CXXParenInitListExpr` an expression. This seems to borrow 
> from `InitListExpr`, but maybe for the wrong reasons.  Braced initializers 
> can actually occur in expressions positions, e.g. `int a = {123}`. However, 
> `CXXParenInistListExpr` cannot occur in expression positions outside 
> initializations, e.g. having `CXXFunctionalCastExpr` for 
> `aggregate_struct(123)` feels somewhat wrong to me and seems to lead to 
> confusing error messages too. Maybe we should model it as a new expression 
> that contains both the type and the argument list? I.e. more similar to 
> `CXXConstructExpr`?

As discussed offline, let's keep the current implementation as is for now.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D129531

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

Reply via email to