<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.

![Image](https://github.com/user-attachments/assets/2e4d4e9e-b76e-4b4f-9d8a-2f74bc302220)


![Image](https://github.com/user-attachments/assets/ed964b4f-59b8-40fc-99e9-bb8dcdcfb1ba)


```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">