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

    <tr>
        <th>Summary</th>
        <td>
            ICE in `TemplateInstantiator::TransformTemplateTypeParmType`
        </td>
    </tr>

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

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

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

<pre>
    This is one of the reduced version of fixed https://github.com/llvm/llvm-project/issues/62615.

This code still crashes the compiler with

```
clang/lib/Sema/SemaTemplateInstantiate.cpp:2224: clang::QualType {anonymous}::TemplateInstantiator::TransformTemplateTypeParmType(clang::TypeLocBuilder&, clang::TemplateTypeParmTypeLoc, bool): Assertion `Arg.getKind() == TemplateArgument::Type && "Template argument kind mismatch"' failed.
```

```cpp
template <class> _declval;
template <class From, class> using _copy_cvref_t = From;
template <class Ty> using _unwrap_t = decltype(_declval<Ty>);
template <class Self, class Ty>
using _element_t = _unwrap_t<_copy_cvref_t<Self, Ty>>;
template <class... Ts,
          auto GenImpl =
              []<class...> { []<class Self, _element_t<Self, Ts>> {}; }>
auto _make_impl() {
 GenImpl();
}
static_assert(_make_impl<>);
```

https://godbolt.org/z/3cb4K6Wbn
 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVM-v4jYQ_msmF6tRsCEJhxwCLNXT7qHVIvWIHHtC3HXiyHbeK_3rK-cHUPq4dKMIE8_M930zYw93Tl06xAI2O9gcIj74xthCNDV3PqqMvBanRjmiHDEdElMT3yCxKAeBkryjdcp0YbtWf6Ekjfe9A1YCPQI9XpRvhioWpgV61Pp9WX7prfkThQd6VM4N6IAeU5quNjEkB0jK6XfkFUYicV5pTYTlrkE3ChCm7ZVGSz6Ubx6DIE3md_wUmneXwKoqoMfv2PJ5OWHba-7xrXOed15xj7Hoe2AlpXQNrCRTKCuBlb8PXJ-uPRLIdrwz3bU1g4PsMFn_C2XsbLG8c7Wx7eISQH7jtg0r0PyBIux8M2I3KC3RAk2B7h8lfIbwzYjgVRmjgW6D5tI5tD50BNKktJf4gv6r6iTQHOiWADsAO5AFq7SXocXO3xWQkTglQOniRPjsRX6oTpJWuZZ70QClQDNSc6VRxp_W_mkzVHfc8QsysL3Q3DlgX8hZotDvXAPbvfAiRxvO0ViVKWZwqruQszD99SzeLdZnH1KcHF_jnK4PwUP3YXk_BwYNfmrNXc9-9B8L_BLyO-r6Jm0imFxnFtQYSjjT3EiB7f-lHth-QZowwvuKNI5jcnJA95Od3B4-eEN-xe6t7fXY8id7eKbb_gAVSgLZ7slwS-yewaNGN2kMgeNt2JFxmXMfdZxb_gPPqu31cgazOaFF4rR_yzMgjH-c516JMx-PdOjIHYntnzry6cl7mkVGVkb72NgwD_4GemSiWn9N_6i6WU8kCya3bMsjLFZpvl1tttk2j5pC5umG04xJKrLNCnGNTG5yydY5rrPNOo1UQRPKkmxFV6uErfJYVjyRiNs6FYmsEwHrBFuudBymX5AQjXOvSFlOWaR5hdotE9gW44ishouDdaKV8-4e5pXXWLztvxA13vH_O3vSJBqsLn5iXAfl_wQAAP__Hurrgw">