<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/56154>56154</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Concepts 'more constrained' not detected for member functions
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang:frontend,
            rejects-valid,
            concepts
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          royjacobson
      </td>
    </tr>
</table>

<pre>
    https://godbolt.org/z/bvKGhY4Yz

```c++
template <int N> concept C0 = (N == 0);
template <int N, int N2> concept C0x = C0<N>;
template <int N1, int N2> concept C00 = C0x<N1, N2> && C0<N2>;

template<int N1, int N2>
struct A {
    void f() requires C00<N1, N2>;
    void f() requires C0x<N1, N2>;
};

template<int N1, int N2>
void f() requires C00<N1, N2>;

template<int N1, int N2>
void f() requires C0x<N1, N2>;

int main() {
    f<0, 0>(); // Works

    A<0, 0> a;
    a.f();  // Works in GCC only.
}
```

This should compile, I think, but it doesn't. For some reason MSVC also say that `a.f()` is ambiguous.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJylVE2PmzAQ_TXmMlrkmJCPA4eUdFdV1b20arVH25jgXYNT20TJ_vqOCduEqqnUNnJgPMx7b2YYLGx1KpoQ9p5kG8Luce1sJawJqXU73L3iXxw-PjRP86dXQreEbsbrgp6XJOxdXIM3qHZveFBAslJ3AR5J9h6k7aTaBygpurdA2OoxGtGmhK1JdhPMShgMNqU5DjwlxbgocJtgdouBjgzHSDFEnSMIW-Aaqdk191Th9wLnGB9cLwNsgCxHLODvYHUFNdaOFYNT33vtlI-ZTDP4qfcnzPEGhiy3_5Dv32b2_8w38x-ukaTluhtxky7WiKQRSCNuCEA0nCcXvln34q-pImRzDQE-aTBP6wvJhAVLgYeyBNuZU3rp7nT0r6W-NNqDb2xvKpyzdq-NiqIfIDS6e4mm6APoAJVVHmtbhhTurQNvW4W94d528Onz1xK48RY8PyGQB0CVS5ILCijCW6F3ve19mlRFVq2zNU-CDkYV5Xm-PVaybK1TceBxGrGXqkIXdBblVVAyKHwvKN6qVigHdd_JoDE26Z359TjQoelFiiXhxpjD2-1u7-wzMuFWe98rj0a-mOXzpClmVNIZy5Yyo7nMqkqKOVUsY3NJ60quWGK4UMYXJMeTg0nDux3q1c52QXWYKYvtwptTUcHfHbjRV-7xM_bRk28TXTDKGF2wGWNslecp5wuRixWtUayick1QHQfKpDHveK4lrhhKEP3O40OjffCXh9x7veuUGtJDft6HxrrC2dMzl1bgi0qGiouh3B-hDHx2">