<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/137111>137111</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
enhancing the non-template completion experience with type holes
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
illusory0x0
</td>
</tr>
</table>
<pre>
It looks better than before.


```C++
struct Hole {
template<typename T>
operator T() const noexcept {
return std::declval<T>();
}
};
auto $hole = Hole{};
struct X {
X foo(int x, int y) {
return $hole;
}
};
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyskk2P-yYQxj8NviBHeIzfDj5kk0bd-x72Cngcu8VgwXg3-fYVTna7baWe_tJIIF6e5wfzqBjnq0PsWfXCqnOmNpp86Gdrt-jDXdxEpv1w71-JW-__jFwjEQZOk3Jc4-gDHpg4poKCVS-vi7oiq84M2olojaw8MrgwuFxnmjZ9MH5hcNkihlwRKTMt6CgyuKgYcZ8AykFih7luasyllmPeDa3KYWykNqUAAMGge5r-Ol8cunp3qzrd5lKMJu867HKt28EMZtSFVv_wrcWjTgxeUoljpLAZ4r97i5w1aYVzwmW1ipCVJ7qv6NSC_I2Vv-2bfsWgyAf-xqBl0HHjXSTuPN4MrvQtwnlA2oLjkYb0svI4oLEfyrLytIvtt1n5OM2ac-Jrzo-FR6mNPGcgpx2uPO-USf_HsSf_-7fvOx-9Z9DOjviNwYmnyT2B_ofsKf0vhp8YX_-VDX05dGWnMuyLRlayhqItsqnXphWNrCqoO41FUwDqukQx1g2UtRYym3sQUAkJUkBZQ3Fo63ZUUFV1I1oBtWZS4KJme7D2Yzn4cM3mGDfsi7IpiiKzSqONe9QBHH7yfZcBpOSHPl3K9XaNTAo7R4p_y9BMFnt0k3JmdldOE3LnXf7VXW78slqk2TuOtxXDjM4g_5xp4qntPP1NzLZg-_-JZ7J7Dvka_B9oiMFlh0wJfb7io4e_AgAA___gQRr4">