<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/105919>105919</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang complains unmatched out-of-line constraints involving UnresolvedLookupExpr
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang:frontend,
concepts,
diverges-from:gcc
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zyn0217
</td>
</tr>
</table>
<pre>
The following case is now rejected by Clang, MSVC and EDG, but accepted only by GCC
https://gcc.godbolt.org/z/9Yv93ccKb
```cpp
template <typename T> class A {
template <typename Ts>
void method(Ts &ts)
requires requires { method(Ts()); };
};
template <class T>
template <typename Ts>
void A<T>::method(Ts &ts)
requires requires { method(Ts()); }
{}
```
We reject it because the requirements there are different:
Declaration
```
CallExpr 0x5555648e4d48 '<dependent type>'
|-UnresolvedLookupExpr 0x5555648e4cd8 '<overloaded function type>' lvalue (ADL) = 'method' empty
`-CXXUnresolvedConstructExpr 0x5555648e4d28 'Ts' 'Ts'
```
Definition
```
CallExpr 0x5555648e4f60 '<dependent type>'
|-UnresolvedMemberExpr 0x5555648e4ed8 '<bound member function type>' lvalue
`-CXXUnresolvedConstructExpr 0x5555648e4f40 'Ts' 'Ts'
```
Not sure if this is conforming.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVE2TozYQ_TXi0mUXlvgwBw42Hu8hu7lkkmyOQmqwEiERSbDr_fUp-WucmanZchUFjdTd7_UDPe696g1iTfItyXcJn8LBuvrH0aR0VSatlcf6-YDQWa3tN2V6ENwjKA_GfgOHf6MIKKE9QqO56Qlt4MtvfzTAjYSn3af43k4BuBA4xkRr9DFmf2oaku5IujnfDyGMnrANoXtC970Qy97K1uqwtK4ndP-D0H3111wxIX5p7wtJkZ4vMY7nlYDDqHlAIKwJxxENHxCeCXsCobn3sAFSbs-pAO8ne8KerhmzVRIGDAcrCV0_eyC0CJ7Q6poA4PDfSTn0LwEpt_c1hK5jAa0I2wIpd4RdCPwvfsP-zPf5RuZnZE9UN4Q1pxK2IWzzEfHHaV84b1_iq_r3I_yJl_8CVIAWBZ88QjjgFWdAE3xccAjcIUjVdejQhEj5rs8OheaOB2XNu2gN1_rp--gg_Z7neV5ka8xktgZCS8IaiSMaiSZAlCoKQsvrAM3id-PQWz2j_GztP9P4uo-Q1z52Rqctlyihm4yIbO46gp65nhAIXW92nwmtgLBdrLzKWAIOYzjeBlg0X7--gDfW-OAmEd7MQU_48RuUt-ADzXfYKaMekqor0gel-oJDi-51H7xJ1drJxLMSsz4Q61Etuix9SItfbQA_OQTVQTgoH81KWNNZNyjTLxNZM1mxiidYr0qaZUVV5GlyqGnOupVgKa_yskOZyrZtRUZlVfA160SVqJqmNEvXNEsZTfN0WRZFVuW8KNqizDtekSzFgSu91HoeonMlyvsJ61WaV6sq0bxF7U9OS6k42SXbdM6agEYSSglt4oY10Sv9bUGqGV2PftE5OxC26YWIe_kucXUEWrRT70mWauWDf4EOKmisT64MwkbnUMbDZAYexCE68RQWtltoZTDK44PjKh5MZWar5-j07x2SZHK6fuXWKhymdinsQOg-wl8ei9HZaAOE7k8yeEL3FyXmmv4XAAD__x0M8xs">