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

    <tr>
        <th>Summary</th>
        <td>
            Clang handles unqualified-ids Incorrectly in lambda-expressions (P2036R3, P2579R0)
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    Test code ([Godbolt](https://godbolt.org/z/M8jhEYo8s)):

```cpp
// -std=c++23
#include <cstdio>
template <class T> void print() { std::puts(__PRETTY_FUNCTION__); }
int main() {
  int x = 42;
  auto l0 = [=]() -> decltype((x)) { return (int &)x; };
  auto l1 = [=] /* () */ -> decltype((x)) { return x; };
  print<decltype(l0())>(); // Clang: int & (expected: const int &)
  print<decltype(l1())>(); // Clang: const int & (correct)
  [=] {
    [=](decltype((x)) y) {
 print<decltype(y)>(); // Clang: int & (expected: const int &)
    }((int &)x);
    print<decltype((x))>(); // Clang: const int & (correct)
 }();
}
```

The above code is derived from [Example 1](https://timsong-cpp.github.io/cppwp/n4950/expr.prim.id.unqual#example-1) in [[expr.prim.id.unqual]](https://timsong-cpp.github.io/cppwp/n4950/expr.prim.id.unqual), which was introduced in [P2036R3](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2036r3.html) and [P2579R0](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2579r0.pdf).
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVU2P4ygU_DXkgmLZDzs2Bx_y5dUcdnY0yh7m1MJAx_RiwxrcSe-vX4GTTnoUrUbalqxuhwdVRZUfMOfUcZCyRsUGFbsFm3xnxpr_dWLOj2zRGvFWH6TzmBshMYIKFZvfjGiN9qjYIag6761DZI2gQdAc51JixiOC5h8Eze_VS7f_YSqHgIaHrFG6Q-n17yqdH27tZSTi4KXzApEdR7BBsAFyLRI1cD0FKWTLnRfKILKfi172VjM_lzRzDh8Q2eNXowS2oxp8UA8Uo3KDI_oakbWdvENQPT19-74_HH48NX9-3R6-_PH16SmK3WBU7mZ4NXjcMzXcUOZxjEPljBHZ4RwQeR9mkzdYp7EQ7CW72bGwehmUCcm1f7MyjlXn2aAob5R-Godgd8BGsEJAz1c1PzNkHxlwdHCNrzphHf38JcIHHLNzZHu3VqczdnRof3kPC-fotpoNR0TW-KI9KJFnK7mXwXTMzeA8vm3sv5iyX2P6ABn4uBlHyf0d-p0_t-Twh2Ae2_P2Me0HKt8-2QgcI4gi7uOP2Lc5D4TcVP9Pt678N8b3Nnjv2Ps2PnQSs9a8yvmYUA4LOapXKfDzaPpg8v7Meqslzh6dGl71zgzHJbc2OSrfTW2iDIKGW3uyCJohp0WKoJFnOyZ2VH2iRDINf09MIyByhl5mISg1xEiLzaO5xe7T2SmCLT51inf4xFwwdTRi4lJclHyDlKy-k0e8p9MpMVYO4ai7HJgvnmcIGscBwoQjhF_CcIegsczKMbxAGodtQB5J0vk-6MBsEDNhUdLv6ScTQiQsSjqmiRXPCGiyEDURlFC2kHVWZlW-WpWULrq6fV5lFFICsiIi56Usi7aiFeMkz4G2xULVkEKerrIiKwqS0YTRfPVc8JaUtMxERlCeyp4pnWj92gelC-XcJGtarFb5QrNWahdvLAAeP2qAcHmNdZi_bKejQ3mqlfPuhuCV17KOPYA7NggtHZ5DVM9KiqUSDn8ZLp2g30J8mvWtYMuQu3ROmcGFZrkmClt89RroYhp1_dNVOH9K3PQImiDj8m9pR_MSu62JuwoOzxt7reHfAAAA__-DsiUA">