<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">