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

    <tr>
        <th>Summary</th>
        <td>
            satisfaction of constraint 'move_constructible<_Tp>' depends on itself
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          G-M-twostay
      </td>
    </tr>
</table>

<pre>
    Using clang 20.1.0 with `-std=c++20`. I've boiled down the problem to the case below.
```
#include <type_traits>
#include <concepts>
struct A{
    template <std::copyable T>
    operator T()const noexcept{
        return T{};
 }
};
template<std::copyable T1,std::copyable T0>
T1 f(T0 v){
    return v;
}
int main()
{
    f<int>(A{});
}
```
entire stack trace appears quite long, but the problem started at
```
<source>:4:15: note: while checking the satisfaction of concept 'copyable<A>' requested here
    4 | template <std::copyable T>
``` 
and turned into
```
.../concepts:275:24: error: satisfaction of constraint 'copy_constructible<_Tp>' depends on itself
  275 |     concept copyable = copy_constructible<_Tp> && movable<_Tp>
```
. Thus, changing `std::copyable` in line 4 to `typename` or `class` fixes the issue.

https://godbolt.org/z/5q3M3GvEY 

GCC 14.3 and 15.1 compiles this just fine.

This issue looks similar to https://github.com/llvm/llvm-project/issues/134880 , but I'm not sure if they are the same issue, can any1 confirm?

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykVc2OozgQfprKpdTI2AHCgQOdnoz2MLfsYU8jYyrB08ambZNM9ulXJkn3TE9rtKtFkYLLRX0_VQYZgj5aogaKRyieVnKOg_PN54cvD_HsQpSXVef6S_Nn0PaIykh7RM6yPGN41nFAKNlDiD2IJwX8EfgjZ1CyDP8AXp0IO6cN9di7s8U4EE7edYZGjG5ZKhkIOzLunAFroWS3H2uBC22VmXtCENt4mehr9FLHAOLTL9vKWUXTfS9EP6uILVSPwFpExEjjZGRccheyLYhWuekiO0O4vz6WEt1EXkbncQ98A7xWzoaI1tH3VP-tYLo8xdlb3Kdo9QRi2Ut3rH1d34E_xs2BfxRmVz77HA_AN3uGJ-D1G_YN93RFuAJqG3GU2l5ZL-F7-gHEVtuYavJNeyPL6x-f_tF3slF7whClesbopSKU00TSB3yZdSQ0zh6Bb7Gb408dDVH6SD3K-L6TYhvc7BUlCqJdg2jzAkSL1iVjWjwP2hCqgdRzmrFUNMiow0GqqJ1Fd8BbgxF4dfcJxLZdRFXo6WWmkMAH8nTTvUaotv-u869sEVgrbY_JYOpR2-jeicmyDPjubd5aXiUtPKlC8t75dPMB_ZCm174q-HoNzSrqq5av--mmpqeJbB_QWdQxkDksgnhVLILSdXfjVQeIJ_xNVQReAi9xdCf5E9o7bbgf5pB6qwZpj6kXULJfXEs-aYtGW8J1OshQsnQ-rRyXPedTRBkZQloe9HcKS1N1CDMt55y1Q4xTsg_4Dvju6PrOmZg5fwS--xv4rngRX8Tn06e_8Jr_ebvFfJ0JTO3JiyxH5cZJm6W0DvhtDhEP2t7r71NwAUTj3HPAoEdtpE9832HrOMxdptwIfGfM6f73MHn3jVQEvlvqBOC7XKw3G4b38U_vuDGNMYbZE-pDknlB6ek2xONN9OKptCjtJRG3B-1HEDtg7apvRF-LWq6oyauCb9hGVPlqaKiQeSlyVRd8LUj2os7LsmdCdFJ0krOVbjjjBavyDRM5L_KM1XXBRd2VBS8LWUpYMxqlNllSk6xdLVyafF2v12JlZEcmLK99zi2d70x5-gr4ZrGgm48B1szoEMNbmaijoeb3Mz66E_2XGV_N3jT_ozFXTaeG_xMAAP__Q3oWwA">