Improved Visual Studio visualization of OpaquePtr

Create a special visualizer for OpaquePtr<QualType> because the 
standard visualizer doesn't work with OpaquePtr<QualType>
due to QualType being heavily dependent on traits to be pointer-like.

Also, created an identical visualizer for UnionOpaquePtr

llvm-svn: 272531
This commit is contained in:
Mike Spertus 2016-06-13 04:02:35 +00:00
parent 9cffa40b75
commit 27c72d2fdb
1 changed files with 18 additions and 0 deletions

View File

@ -485,12 +485,30 @@ For later versions of Visual Studio, no setup is required-->
<ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
</Expand>
</Type>
<Type Name="clang::OpaquePtr&lt;clang::QualType&gt;">
<DisplayString>{*(clang::QualType *)this}</DisplayString>
<Expand>
<Item Name="Ptr">*(clang::QualType *)this</Item>
</Expand>
</Type>
<Type Name="clang::UnionOpaquePtr&lt;clang::QualType&gt;">
<DisplayString>{*(clang::QualType *)this}</DisplayString>
<Expand>
<Item Name="Ptr">*(clang::QualType *)this</Item>
</Expand>
</Type>
<Type Name="clang::OpaquePtr&lt;*&gt;">
<DisplayString>{($T1 *)Ptr}</DisplayString>
<Expand>
<ExpandedItem>($T1 *)Ptr</ExpandedItem>
</Expand>
</Type>
<Type Name="clang::UnionOpaquePtr&lt;*&gt;">
<DisplayString>{($T1 *)Ptr}</DisplayString>
<Expand>
<ExpandedItem>($T1 *)Ptr</ExpandedItem>
</Expand>
</Type>
<Type Name="clang::TemplateParameterList">
<DisplayString IncludeView="parm0" Condition="NumParams==0"></DisplayString>
<DisplayString IncludeView="parm0">{*((NamedDecl **)(this+1))[0],view(cpp)}{*this,view(parm1)}</DisplayString>