ChuanqiXu added a comment.

In D129068#3637716 <https://reviews.llvm.org/D129068#3637716>, @vsapsai wrote:

> After looking at this change more, I was thinking about changing the title 
> from **how** to **what** you are doing. For example, something like "[AST] 
> Accept identical TypeConstraint referring to other template parameters." You 
> can tweak it as you know better what's going on but that is my general 
> understanding of the change.

It looks better. Done.

> Instead of my previous ideas with `Profile` I'm looking into how we are 
> handling constraints from different modules when they are specified in 
> `requires` clause. Because I wasn't able to cause errors with
>
>   template <__integer_like _Tp, typename Sentinel>
>   constexpr _Tp funcA(_Tp &&__t, Sentinel &&last) requires C<Sentinel, _Tp> {
>     return __t;
>   }
>
> And it seems beneficial to handle constraints across modules in the same way. 
> Similar story with template parameters referring to other template parameters.

For require clause, it is handled by 
https://github.com/llvm/llvm-project/blob/f6e0c05e3dcb0b6f28424fb3435d547c04c3edd5/clang/lib/AST/ASTContext.cpp#L6453-L6463.
 But sadly we couldn't follow its style directly. Since `requires` clause is 
different with the inplace concept usage in the AST level.

> In D129068#3629217 <https://reviews.llvm.org/D129068#3629217>, @ChuanqiXu 
> wrote:
>
>>> And I have some ideas about the tests. It might be covered elsewhere but 
>>> I'm curious if there are any not-isSameTemplateParameter test cases?
>>
>> I am not sure what you mean about "not-isSameTemplateParameter test case".
>
> For example, when I make the change
>
>   +#if 0
>            if (XID != YID)
>              return false;
>   +#endif
>
> in `ASTContext::isSameTemplateParameter`, only "PCH/cxx2a-constraints.cpp" is 
> failing. So it looks like there aren't many tests verifying various 
> similar-but-slightly-different constrained templates are rejected. I agree 
> that some of such tests should have existed before your changes and I'm not 
> asking to test all possible kinds of mismatches. But we can still bolster the 
> test suite, I hope. Though specific tests might depend on the implementation, 
> so you don't have to rush with extra tests (unless you want to).

Agreed. I added a test in this revision. And other kind of tests I imaged is 
covered by the checks in line 6230-6247. So I don't expect the current test 
covers all cases. But I feel it is not too bad.


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

https://reviews.llvm.org/D129068

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

Reply via email to