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

    <tr>
        <th>Summary</th>
        <td>
            One value has two types
        </td>
    </tr>

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

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

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

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

I know, there are standard issue with type of 'j' in lambda, but current behavior is completelly incorrect

```cpp


#include <type_traits>

int main()
{
  int i, &j = i;
  [=]
  {
 static_assert(std::is_same_v<decltype(j), int&>
     && std::is_same_v<decltype((((j)))),const int&>);
  }();
}

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEUk2P2jAQ_TWTy2hRMiZfhxx2YSNVPfTcE7KdgZh1YmQ7oO2vrwyU0qpSo5ETvcm89zx6MgRzmJk7KN-g3GZyiaPz3Qdb5eZMueGzG2M8BRCvQD1Qf3CDcjaunD8A9T-A-u-jkO-q-TpCvoX89XZ-wY_ZXYA2GEf2jNIzhijnQfoBTQgL48XEEePnidHtEag-AtVoZrRyUoNMo2qJqBfveY6oeJRn4zyagNpNJ8uRrf1EM2vnPev4rA5Vfit9Ov2B304SZtZ2GRhBbJKDXfTSxADi_fk_M0ecpJmBGqD23qnfbh-IqW2STaDqiCC2aEA8ummfYgvl9gE8JkOU0eidDIF9BGpCHNJ6xasJuyAn3p1BbAbWNlkDao5JnTZJEKh6mMT0JIAq_B_Fo25cj9poN4f4xEzt8x3q7f3uv7CE_GvP2dCJoRWtzLgr6jwXtC6bMhu7vKFBF0Vbr2vmvdoLrVROUlV1LigXMjMd5SSKomiKikRerspm35Y179tqrXWrJaxznqSxK2vPU4pddo1PV1NdUmalYhuu6SWa-XLLFhClMPsuzbyo5RBgnVsTYvjNEk203H2bGc_SLoyjDBgv7prIkC3e_h18E8dFrbSbgPrEcn-9nLw7pvxRf9UOQP3V288AAAD__2i4-lA">