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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Add Intangible AST Type
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          llvm-beanz
      </td>
    </tr>
</table>

<pre>
    HLSL has a set of _intangible types_, which are described in in the [draft HLSL Specification (**[Basic.types]**)](https://microsoft.github.io/hlsl-specs/specs/hlsl.pdf):
> There are special implementation-defined types such as handle types, which fall into a category of standard intangible types. Intangible types are types that have no defined object representation or value representation, as such the size is unknown at compile time.
>
> A class type T is an intangible class type if it contains an base classes or members of intangible class type, standard intangible type, or arrays of such types. Standard intangible types and intangible class types are collectively called intangible types([9](https://microsoft.github.io/hlsl-specs/specs/hlsl.html#Intangible)).

We need to add a new AST type for intangible types, and a way to generate the appropriate handle types.

## Acceptance Criteria
* New AST Type for intangible types
* New type trait builtin for `__is_intangible`
* Update resource types to use intangible handle

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVEFv6zYM_jXKhWjgyHZTH3xw2gUb8LBLO-xY0BIdc5MlQ5Jb5P36QYqz5r21twEGbFPkx4-fPxND4JMlakV9EPXTBpc4Ot8a8zbd9YT2-6Z3-tz--u35G4wYACFQBDfAK9uI9sS9IYjnmcKrkI_wPrIaAT2BpqA896SBbbriSCDqg_Y4RMhwzzMpHlhhZGdByAchu3TVhwMGVtuMKuqnNSyb_PwwxjgHUXZCHoU8Tqy8C26I2xPHcem37IQ8jiaYuzCTCkIer_cU3M56SEhlJ4pOlL_Ay0ieMuGUxmiAp9nQRDZmXneaBrakLzNCWNJ4AUa0-jr4x9wDGgNsowMEhZFOzp-TViGi1eiTFD9qtoXffopkKpenOGKEEd8IrIMrDdf_RSqCp9lTuJIE5-ENzUI_xRMzXEkn_QN_J-AAi_3buncLGEG5aebUnCfaXjRZlelAGQwhk4GXVIb2doCbUx6AE5SNyDbn9RjWDAqJ3URTTz4kMT6FSEy_UimdOQ_oPZ4zwmWei37PX0kLaPXnvS4aK2cMqchvZM6g0Bj6L0byZH34X3w3xskIWX587uRC2WTJi-5PAkvJZA5Qa0Cw9A7d88tF3sH5T6g95gkR3vGc6k5kyWOk_KFxnr2bPaf3W6uu7YQshSyhU4rmiFYRPHqO5BnzYQe_r-1fvmz_kZcpRo8coV_YRLa5QtwXr68cbtaEuC_Wsj9mnZh5Cm7x6l-_O1gC3ba6UBdFt9FtqZuywQ21u_2uqpqHUhabsZX7-mGnir5Quqn0XtZDLxtVlvIBUQ37esOtLGRVVGWx25eyKLZNtS93VVUWshyq-0aLqqAJ2WzTyts6f9pwCAu1TXFf7jYGezIhL0cp09YSUqY1ed2QyymIqjAcYvgAiBxNXqi5oH6CTuvbH_2q7Gbxpv3RVquZlJuEPCbA9XY3e5d-fCGPmV7yVWb4TwAAAP__XMLzlQ">