<?xml version="1.0" encoding="utf-8"?>
<!--
Visual Studio Native Debugging Visualizers for LLVM

For Visual Studio 2013 only, put this file into 
"%USERPROFILE%\Documents\Visual Studio 2013\Visualizers" or create a symbolic link so it updates automatically.

For later versions of Visual Studio, no setup is required-->
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">

  <Type Name="clang::Type">
    <!-- To visualize clang::Types, we need to look at TypeBits.TC to determine the actual
         type subclass and manually dispatch accordingly (Visual Studio can't identify the real type
         because clang::Type has no virtual members hence no RTTI). 
         
         Views:
           "cmn": Visualization that is common to all clang::Type subclasses
           "poly": Visualization that is specific to the actual clang::Type subclass. The subtype-specific
                   <DisplayString> is typically as C++-like as possible (like in dump()) with <Expand>
                   containing all the gory details.
           "cpp": Only occasionally used when we need to distinguish between an ordinary view and a C++-like view.
    -->
    <DisplayString IncludeView="cmn" Condition="TypeBits.TC==clang::LocInfoType::LocInfo">LocInfoType</DisplayString>
    <DisplayString IncludeView="cmn">{(clang::Type::TypeClass)TypeBits.TC, en}Type</DisplayString>
    <!-- Dispatch to visualizers for the actual Type subclass -->
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Builtin" IncludeView="poly">{*(clang::BuiltinType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Pointer" IncludeView="poly">{*(clang::PointerType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::LValueReference" IncludeView="poly">{*(clang::LValueReferenceType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::RValueReference" IncludeView="poly">{*(clang::RValueReferenceType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Attributed" IncludeView="poly">{*(clang::AttributedType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::TemplateTypeParm" IncludeView="poly">{*(clang::TemplateTypeParmType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::SubstTemplateTypeParm" IncludeView="poly">{*(clang::SubstTemplateTypeParmType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Record" IncludeView="poly">{*(clang::RecordType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::Record" IncludeView="cpp">{*(clang::RecordType *)this,view(cpp)}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::FunctionProto" IncludeView="poly">{*(clang::FunctionProtoType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::TemplateSpecialization" IncludeView="poly">{*(clang::TemplateSpecializationType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::DeducedTemplateSpecialization" IncludeView="poly">{*(clang::DeducedTemplateSpecializationType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::InjectedClassName" IncludeView="poly">{*(clang::InjectedClassNameType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::Type::TypeClass::PackExpansion" IncludeView="poly">{*(clang::PackExpansionType *)this}</DisplayString>
    <DisplayString Condition="TypeBits.TC==clang::LocInfoType::LocInfo" IncludeView="poly">{*(clang::LocInfoType *)this}</DisplayString>
    <DisplayString IncludeView="cpp">{*this,view(poly)}</DisplayString>
    <DisplayString IncludeView="poly">No visualizer yet for {(clang::Type::TypeClass)TypeBits.TC,en}Type</DisplayString> <!-- Not yet implemented Type subclass -->
    <DisplayString IncludeView="Dependent" Condition="TypeBits.Dependent">Dependent{" ",sb}</DisplayString>
    <DisplayString IncludeView="Dependent"></DisplayString>
    <DisplayString IncludeView="InstantiationDependent" Condition="TypeBits.InstantiationDependent">InstantiationDependent{" ",sb}</DisplayString>
    <DisplayString IncludeView="InstantiationDependent"></DisplayString>
    <DisplayString IncludeView="VariablyModified" Condition="TypeBits.VariablyModified">VariablyModified{" ",sb}</DisplayString>
    <DisplayString IncludeView="VariablyModified"></DisplayString>
    <DisplayString IncludeView="ContainsUnexpandedParameterPack" Condition="TypeBits.ContainsUnexpandedParameterPack">ContainsUnexpandedParameterPack{" ",sb}</DisplayString>
    <DisplayString IncludeView="ContainsUnexpandedParameterPack"></DisplayString>
    <DisplayString IncludeView="Cache" Condition="TypeBits.CacheValid &amp;&amp; TypeBits.CachedLocalOrUnnamed">CachedLinkage: {(clang::Linkage)TypeBits.CachedLinkage,en} CachedLocalOrUnnamed</DisplayString>
    <DisplayString IncludeView="Cache" Condition="TypeBits.CacheValid &amp;&amp; !TypeBits.CachedLocalOrUnnamed">CachedLinkage: {(clang::Linkage)TypeBits.CachedLinkage,en}{" ",sb}</DisplayString>
    <DisplayString IncludeView="Cache"></DisplayString>
    <DisplayString IncludeView="FromAST" Condition="TypeBits.FromAST">FromAST</DisplayString>
    <DisplayString IncludeView="FromAST"></DisplayString>
    <DisplayString IncludeView="flags" Condition="!TypeBits.Dependent &amp;&amp; !TypeBits.InstantiationDependent &amp;&amp; !TypeBits.VariablyModified  &amp;&amp; !TypeBits.ContainsUnexpandedParameterPack &amp;&amp; !TypeBits.CacheValid &amp;&amp; !TypeBits.FromAST">
      No TypeBits set beyond TypeClass
    </DisplayString>
    <DisplayString IncludeView="flags">
{*this, view(Dependent)}{*this, view(InstantiationDependent)}{*this, view(VariablyModified)}
{*this, view(ContainsUnexpandedParameterPack)}{*this, view(Cache)}{*this, view(FromAST)}</DisplayString>
    <DisplayString>{*this,view(cmn)}  {{{*this,view(poly)}}}</DisplayString>
    <Expand>
      <Item Name="TypeClass" IncludeView="cmn">(clang::Type::TypeClass)TypeBits.TC</Item>
      <Item Name="Flags" IncludeView="cmn">*this,view(flags)</Item>
      <Item Name="Canonical" IncludeView="cmn">CanonicalType</Item>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Builtin">*(clang::BuiltinType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Pointer">*(clang::PointerType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::LValueReference">*(clang::LValueReferenceType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::RValueReference">*(clang::RValueReferenceType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Attributed">*(clang::AttributedType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::TemplateTypeParm">(clang::TemplateTypeParmType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::SubstTemplateTypeParm">(clang::SubstTemplateTypeParmType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::Record">(clang::RecordType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::FunctionProto">(clang::FunctionProtoType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::TemplateSpecialization">(clang::TemplateSpecializationType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::DeducedTemplateSpecialization">(clang::DeducedTemplateSpecializationType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::InjectedClassName">(clang::InjectedClassNameType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::Type::TypeClass::PackExpansion">(clang::PackExpansionType *)this</ExpandedItem>
      <ExpandedItem ExcludeView="cmn" Condition="TypeBits.TC==clang::LocInfoType::LocInfo">(clang::LocInfoType *)this</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::PointerType">
    <DisplayString>{PointeeType, view(poly)} *</DisplayString>
    <Expand>
      <Item Name="PointeeType">PointeeType</Item>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <!-- We visualize all inner types for clang reference types. So a rvalue reference to an lvalue reference
       to an int  would visual as int &amp; &amp;&amp; This is a little different than GetPointeeType(),
       but more clearly displays the data structure and seems natural -->
  <Type Name="clang::LValueReferenceType">
    <DisplayString>{((clang::ReferenceType *)this)-&gt;PointeeType,view(cpp)} &amp;</DisplayString>
    <Expand>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
      <Item Name="PointeeType">PointeeType</Item>
    </Expand>
  </Type>
  <Type Name="clang::RValueReferenceType">
    <DisplayString>{((clang::ReferenceType *)this)-&gt;PointeeType,view(cpp)} &amp;&amp;</DisplayString>
    <Expand>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
      <Item Name="PointeeType">PointeeType</Item>
    </Expand>
  </Type>
  <Type Name="clang::AttributedType">
    <DisplayString>{ModifiedType} Attribute={(clang::AttributedType::Kind)AttributedTypeBits.AttrKind}</DisplayString>
  </Type>
  
  <!-- Unfortunately, Visual Studio has trouble seeing the PointerBitMask member PointerIntUnion, so I hardwire it to 2 bits-->
  <Type Name="clang::DeclContext">
    <DisplayString>{(clang::Decl::Kind)DeclKind,en}Decl</DisplayString>
    <Expand>
      <Item Name="DeclKind">(clang::Decl::Kind)DeclKind,en</Item>
      <Synthetic Name="Members">
        <DisplayString></DisplayString>
        <Expand>
          <LinkedListItems>
            <HeadPointer>FirstDecl</HeadPointer>
            <NextPointer>(clang::Decl *)(NextInContextAndBits.Value &amp; ~3)</NextPointer>
            <ValueNode>*this</ValueNode>
          </LinkedListItems>
        </Expand>
      </Synthetic>
    </Expand>
  </Type>
  <Type Name="clang::FieldDecl">
    <DisplayString>Field {{{*(clang::DeclaratorDecl *)this,view(cpp)nd}}}</DisplayString>
  </Type>
  <Type Name="clang::CXXMethodDecl">
    <DisplayString IncludeView="cpp">{*(clang::FunctionDecl *)this,nd}</DisplayString>
    <DisplayString>Method {{{*this,view(cpp)}}}</DisplayString>
  </Type>
  <Type Name="clang::CXXConstructorDecl">
    <DisplayString>Constructor {{{Name,view(cpp)}({*(clang::FunctionDecl *)this,view(parm0)nd})}}</DisplayString>
  </Type>
  <Type Name="clang::CXXDestructorDecl">
    <DisplayString>Destructor {{~{Name,view(cpp)}()}}</DisplayString>
  </Type>
  <Type Name="clang::TemplateTypeParmDecl">
    <DisplayString IncludeView="TorC" Condition="Typename">typename</DisplayString>
    <DisplayString IncludeView="TorC" Condition="!Typename">class</DisplayString>
    <DisplayString IncludeView="MaybeEllipses" Condition="TypeForDecl == nullptr">(not yet known if parameter pack) </DisplayString>
    <DisplayString IncludeView="MaybeEllipses" Condition="((TemplateTypeParmType *)(((clang::ExtQualsTypeCommonBase *)(((uintptr_t)TypeForDecl->CanonicalType.Value.Value) &amp; ~(uintptr_t)((1 &lt;&lt; 4) - 1)))-&gt;BaseType))->CanTTPTInfo.ParameterPack">...</DisplayString>
    <DisplayString IncludeView="MaybeEllipses" Condition="!((TemplateTypeParmType *)(((clang::ExtQualsTypeCommonBase *)(((uintptr_t)TypeForDecl->CanonicalType.Value.Value) &amp; ~(uintptr_t)((1 &lt;&lt; 4) - 1)))-&gt;BaseType))->CanTTPTInfo.ParameterPack"></DisplayString>
    <DisplayString>{*this,view(TorC)} {*this,view(MaybeEllipses)}{Name,view(cpp)}</DisplayString> 
  </Type>
  <Type Name="clang::TemplateDecl">
    <DisplayString>template{TemplateParams,view(deref)} {*TemplatedDecl};</DisplayString>
  </Type>
  <Type Name="clang::TemplateName">
    <DisplayString>{Storage,view(deref)}</DisplayString>
    <Expand>
      <ExpandedItem>Storage</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::NamedDecl" >
    <DisplayString IncludeView="cpp">{Name,view(cpp)}</DisplayString>
    <DisplayString>{Name}</DisplayString>
  </Type>
  <Type Name="clang::TagDecl">
    <DisplayString IncludeView="implicit" Condition="Implicit">implicit{" ",sb}</DisplayString>
    <DisplayString IncludeView="implicit"></DisplayString>
    <DisplayString IncludeView="modifiers">{*this,view(implicit)nd}</DisplayString>
    <DisplayString IncludeView="cpp">{*this,view(modifiers)}{Name,view(cpp)}</DisplayString>
    <DisplayString Condition="TagDeclBits.TagDeclKind==clang::TagTypeKind::TTK_Struct">{*this,view(modifiers)nd}struct {Name,view(cpp)}</DisplayString>
    <DisplayString Condition="TagDeclBits.TagDeclKind==clang::TagTypeKind::TTK_Interface">{*this,view(modifiers)nd}interface {Name,view(cpp)}</DisplayString>
    <DisplayString Condition="TagDeclBits.TagDeclKind==clang::TagTypeKind::TTK_Union">{*this,view(modifiers)nd}union {Name,view(cpp)}</DisplayString>
    <DisplayString Condition="TagDeclBits.TagDeclKind==clang::TagTypeKind::TTK_Class">{*this,view(modifiers)nd}class {Name,view(cpp)}</DisplayString>
    <DisplayString Condition="TagDeclBits.TagDeclKind==clang::TagTypeKind::TTK_Enum">{*this,view(modifiers)nd}enum {Name,view(cpp)}</DisplayString>
    <Expand>
      <ExpandedItem>(clang::DeclContext *)this</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::TagType">
    <DisplayString IncludeView="cpp">{*decl,view(cpp)}</DisplayString>
    <DisplayString>{*decl}</DisplayString>
    <Expand>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
      <Item Name="decl">decl</Item>
    </Expand>
  </Type>
  <Type Name="clang::RecordType">
    <DisplayString IncludeView="cpp">{*(clang::TagType *)this,view(cpp)}</DisplayString>
    <DisplayString>{*(clang::TagType *)this}</DisplayString>
    <Expand>
      <Item Name="TagType">*(clang::TagType *)this</Item>
    </Expand>
  </Type>
  <Type Name="clang::SubstTemplateTypeParmType">
    <DisplayString>{*Replaced,view(cpp)} &lt;= {CanonicalType,view(cpp)}</DisplayString>
    <Expand>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
      <Item Name="Replaced">*Replaced</Item>
    </Expand>
  </Type>
  <!-- We only show the first 5 parameter types in the display string (can't figure out how to loop in DisplayString)
       but the expansion has all parameters -->
  <Type Name="clang::FunctionProtoType">
    <DisplayString IncludeView="retType">{ResultType,view(cpp)}</DisplayString>
    <DisplayString IncludeView="parm0" Condition="FunctionTypeBits.NumParams==0"></DisplayString>
    <DisplayString IncludeView="parm0">{*(clang::QualType *)(this+1),view(cpp)}{*this,view(parm1)}</DisplayString>
    <DisplayString IncludeView="parm1" Condition="FunctionTypeBits.NumParams==1"></DisplayString>
    <DisplayString IncludeView="parm1">, {*((clang::QualType *)(this+1)+1),view(cpp)}{*this,view(parm2)}</DisplayString>
    <DisplayString IncludeView="parm2" Condition="FunctionTypeBits.NumParams==2"></DisplayString>
    <DisplayString IncludeView="parm2">, {*((clang::QualType *)(this+1)+2),view(cpp)}{*this,view(parm3)}</DisplayString>
    <DisplayString IncludeView="parm3" Condition="FunctionTypeBits.NumParams==3"></DisplayString>
    <DisplayString IncludeView="parm3">, {*((clang::QualType *)(this+1)+3),view(cpp)}{*this,view(parm4)}</DisplayString>
    <DisplayString IncludeView="parm4" Condition="FunctionTypeBits.NumParams==4"></DisplayString>
    <DisplayString IncludeView="parm4">, {*((clang::QualType *)(this+1)+4),view(cpp)}{*this,view(parm5)}</DisplayString>
    <DisplayString IncludeView="parm5" Condition="FunctionTypeBits.NumParams==5"></DisplayString>
    <DisplayString IncludeView="parm5">, /* expand for more params */</DisplayString>
    <DisplayString>{*this,view(retType)}({*this,view(parm0)})</DisplayString>
    <Expand>
      <Item Name="ReturnType">ResultType</Item>
      <Synthetic Name="Parameter Types">
        <DisplayString>{*this,view(parm0)}</DisplayString>
        <Expand>
          <ArrayItems>
            <Size>FunctionTypeBits.NumParams</Size>
            <ValuePointer>(clang::QualType *)(this+1)</ValuePointer>
          </ArrayItems>
        </Expand>
      </Synthetic>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::TemplateTypeParmType">
    <DisplayString IncludeView="cpp" Condition="CanonicalType.Value.Value != this">{*TTPDecl}</DisplayString>
    <DisplayString Condition="CanonicalType.Value.Value != this">Non-canonical: {*TTPDecl}</DisplayString>
    <DisplayString>Canonical: {CanTTPTInfo}</DisplayString>
    <Expand>
    </Expand>
  </Type>
  <Type Name="clang::InjectedClassNameType">
    <DisplayString>{*Decl,view(cpp)}</DisplayString>
    <Expand>
      <Item Name="Decl">Decl</Item>
      <Item Name="InjectedType">InjectedType</Item>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::PackExpansionType">
    <DisplayString>{Pattern}</DisplayString>
    <Expand>
      <Item Name="Pattern">Pattern</Item>
      <Item Name="NumExpansions">NumExpansions</Item>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::QualType">
    <!-- When VS2013 support is deprecated, change 4 to clang::TypeAlignmentInBits (not properly recognized by VS2013) -->
    <DisplayString IncludeView="poly">{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) &amp; ~(uintptr_t)((1 &lt;&lt; 4) - 1)))-&gt;BaseType,view(poly)}{*this,view(fastQuals)}</DisplayString>
    <DisplayString IncludeView="cpp">{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) &amp; ~(uintptr_t)((1 &lt;&lt; 4) - 1)))-&gt;BaseType,view(cpp)}{*this,view(fastQuals)}</DisplayString>
    <!-- For the Fast Qualifiers, it is simpler (and probably more efficient) just to list all 8 cases than create
          views for each qualifier. TODO: Non-fast qualifiers -->
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==0"></DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==1">{" ",sb}const</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==2">{" ",sb}restrict</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==3">{" ",sb}const restrict</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==4">{" ",sb}volatile</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==5">{" ",sb}const volatile</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==6">{" ",sb}volatile restrict</DisplayString>
    <DisplayString IncludeView="fastQuals" Condition="(Value.Value &amp; 15)==7">{" ",sb}const volatile restrict</DisplayString>
    <DisplayString IncludeView="fastQuals">Cannot visualize non-fast qualifiers</DisplayString>
    <DisplayString Condition="(uintptr_t)Value.Value == 0">Null</DisplayString>
    <DisplayString>{*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) &amp; ~(uintptr_t)((1 &lt;&lt; 4) - 1)))-&gt;BaseType}{*this,view(fastQuals)}</DisplayString>
    <Expand>
      <Item Name="Fast Quals">*this,view(fastQuals)</Item>
      <ExpandedItem>*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) &amp; ~(uintptr_t)((1 &lt;&lt; 4) - 1)))-&gt;BaseType</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::LocInfoType">
    <DisplayString>{*DeclInfo}</DisplayString>
    <Expand>
      <Item Name="DeclInfo">DeclInfo</Item>
      <ExpandedItem>*(clang::Type *)this, view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::TypeSourceInfo">
    <DisplayString>{Ty}</DisplayString>
  </Type>
  <Type Name="clang::TemplateArgumentLoc">
    <DisplayString>{Argument}</DisplayString>
    <Expand>
      <ExpandedItem>Argument</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::TemplateArgument">
    <DisplayString IncludeView="cpp" Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Type">{*(clang::QualType *)&amp;TypeOrValue.V,view(cpp)}</DisplayString>
    <DisplayString Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Type">{(clang::TemplateArgument::ArgKind)TypeOrValue.Kind,en} template argument: {*(clang::QualType *)&amp;TypeOrValue.V}</DisplayString>
    <DisplayString IncludeView="arg0" Condition="Args.NumArgs==0"></DisplayString>
    <DisplayString IncludeView="arg0">{Args.Args[0]}{*this,view(arg1)}</DisplayString>
    <DisplayString IncludeView="arg1" Condition="Args.NumArgs==1"></DisplayString>
    <DisplayString IncludeView="arg1">, {Args.Args[1]}{*this,view(arg2)}</DisplayString>
    <DisplayString IncludeView="arg2" Condition="Args.NumArgs==2"></DisplayString>
    <DisplayString IncludeView="arg2">, {Args.Args[2]}, ...</DisplayString>
    <DisplayString IncludeView="arg0cpp" Condition="Args.NumArgs==0"></DisplayString>
    <DisplayString IncludeView="arg0cpp">{Args.Args[0],view(cpp)}{*this,view(arg1cpp)}</DisplayString>
    <DisplayString IncludeView="arg1cpp" Condition="Args.NumArgs==1"></DisplayString>
    <DisplayString IncludeView="arg1cpp">, {Args.Args[1],view(cpp)}{*this,view(arg2cpp)}</DisplayString>
    <DisplayString IncludeView="arg2cpp" Condition="Args.NumArgs==2"></DisplayString>
    <DisplayString IncludeView="arg2cpp">, {Args.Args[2],view(cpp)}, ...</DisplayString>
    <DisplayString IncludeView="cpp" Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Pack">{*this,view(arg0cpp)}</DisplayString>
    <DisplayString Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Pack">{*this,view(arg0)}</DisplayString>
    <DisplayString>{(clang::TemplateArgument::ArgKind)TypeOrValue.Kind,en}</DisplayString>
    <Expand>
      <Item Name="QualType" Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Type">*(clang::QualType *)&amp;TypeOrValue.V</Item>
      <ArrayItems Condition="Integer.Kind == clang::TemplateArgument::ArgKind::Pack">
        <Size>Args.NumArgs</Size>
        <ValuePointer>Args.Args</ValuePointer>
      </ArrayItems>
      <!-- TODO: Other kinds-->
    </Expand>
  </Type>
  <Type Name="clang::TemplateArgumentList">
    <DisplayString IncludeView="arg0" Condition="NumArguments==0"></DisplayString>
    <DisplayString IncludeView="arg0">{Arguments[0],view(cpp)}{*this,view(arg1)}</DisplayString>
    <DisplayString IncludeView="arg1" Condition="NumArguments==1"></DisplayString>
    <DisplayString IncludeView="arg1">, {Arguments[1],view(cpp)}{*this,view(arg2)}</DisplayString>
    <DisplayString IncludeView="arg2" Condition="NumArguments==2"></DisplayString>
    <DisplayString IncludeView="arg2">, {Arguments[1],view(cpp)}, ...</DisplayString>
    <DisplayString>&lt;{*this,view(arg0)}&gt;</DisplayString>
    <Expand>
      <Item Name="NumArguments">NumArguments</Item>
      <ArrayItems>
        <Size>NumArguments</Size>
        <ValuePointer>Arguments</ValuePointer>
      </ArrayItems>
    </Expand>
  </Type>
  <Type Name="llvm::ArrayRef&lt;clang::TemplateArgument&gt;">
    <DisplayString IncludeView="arg0" Condition="Length==0"></DisplayString>
    <DisplayString IncludeView="arg0">{Data[0],view(cpp)}{*this,view(arg1)}</DisplayString>
    <DisplayString IncludeView="arg1" Condition="Length==1"></DisplayString>
    <DisplayString IncludeView="arg1">, {Data[1],view(cpp)}{*this,view(arg2)}</DisplayString>
    <DisplayString IncludeView="arg2" Condition="Length==2"></DisplayString>
    <DisplayString IncludeView="arg2">, {Data[2],view(cpp)}, ...</DisplayString>
    <DisplayString>&lt;{*this,view(arg0)}&gt;</DisplayString>
  </Type>
  <Type Name="clang::MultiLevelTemplateArgumentList">
    <DisplayString IncludeView="level0" Condition="(llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.EndX - (llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX==0"></DisplayString>
    <DisplayString IncludeView="level0">{((llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX)[0],view(cpp)}{*this,view(level1)}</DisplayString>
    <DisplayString IncludeView="level1" Condition="(llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.EndX - (llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX==1"></DisplayString>
    <DisplayString IncludeView="level1">::{((llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX)[1],view(cpp)}{*this,view(level2)}</DisplayString>
    <DisplayString IncludeView="level2" Condition="(llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.EndX - (llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX==2"></DisplayString>
    <DisplayString IncludeView="level2">::{((llvm::ArrayRef&lt;clang::TemplateArgument&gt; *)TemplateArgumentLists.BeginX)[2],view(cpp)}, ...</DisplayString>
    <DisplayString>{*this,view(level0)}</DisplayString>
    <Expand>
      <Item Name="TemplateList">TemplateArgumentLists</Item>
    </Expand>
  </Type>
  <Type Name="clang::ParsedTemplateArgument">
    <DisplayString Condition="Kind==clang::ParsedTemplateArgument::Type">Type template argument: {*(clang::QualType *)Arg}</DisplayString>
    <DisplayString Condition="Kind==clang::ParsedTemplateArgument::NonType">Non-type template argument: {*(clang::Expr *)Arg}</DisplayString>
    <DisplayString Condition="Kind==clang::ParsedTemplateArgument::Template">Template template argument: {*(clang::TemplateName *)Arg</DisplayString>
    <Expand>
      <Item Name="Kind">Kind,en</Item>
      <Item Name="Arg" Condition="Kind==clang::ParsedTemplateArgument::Type">(clang::QualType *)Arg</Item>
      <Item Name="Arg" Condition="Kind==clang::ParsedTemplateArgument::NonType">(clang::Expr *)Arg</Item>
      <Item Name="Arg" Condition="Kind==clang::ParsedTemplateArgument::Template">(clang::TemplateName *)Arg</Item>
    </Expand>
  </Type>
  <!-- Builtin types that have C++ keywords are manually displayed as that keyword. Otherwise, just use the enum name -->
  <Type Name="clang::BuiltinType">
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Void">void</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Bool">bool</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char_U">char</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UChar">unsigned char</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::WChar_U">wchar_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char16">char16_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char32">char32_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UShort">unsigned short</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UInt">unsigned int</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::ULong">unsigned long</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::ULongLong">unsigned long long</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::UInt128">__uint128_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Char_S">char</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::SChar">signed char</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::WChar_S">wchar_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Short">short</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Int">int</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Long">long</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::LongLong">long long</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Int128">__int128_t</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Half">__fp16</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Float">float</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::Double">double</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::LongDouble">long double</DisplayString>
    <DisplayString Condition="BuiltinTypeBits.Kind==clang::BuiltinType::NullPtr">nullptr_t</DisplayString>
    <DisplayString>{(clang::BuiltinType::Kind)BuiltinTypeBits.Kind, en}</DisplayString>
    <Expand>
      <Item Name="Kind">(clang::BuiltinType::Kind)BuiltinTypeBits.Kind</Item>
    </Expand>
  </Type>

  <Type Name="clang::TemplateSpecializationType">
    <DisplayString IncludeView="arg0" Condition="NumArgs==0"></DisplayString>
    <DisplayString IncludeView="arg0">{((clang::TemplateArgument *)(this+1))[0],view(cpp)}{*this,view(arg1)}</DisplayString>
    <DisplayString IncludeView="arg1" Condition="NumArgs==1"></DisplayString>
    <DisplayString IncludeView="arg1">, {((clang::TemplateArgument *)(this+1))[1],view(cpp)}{*this,view(arg2)}</DisplayString>
    <DisplayString IncludeView="arg2" Condition="NumArgs==2"></DisplayString>
    <DisplayString IncludeView="arg2">, {((clang::TemplateArgument *)(this+1))[2],view(cpp)}{*this,view(arg3)}</DisplayString>
    <DisplayString Condition="(Template.Storage.Val.Val.Value &amp; 3) == 0">
      {*((clang::TemplateDecl *)((Template.Storage.Val.Val.Value &gt;&gt; 2) &lt;&lt; 2))->TemplatedDecl,view(cpp)}&lt;{*this,view(arg0)}&gt;
    </DisplayString>
    <Expand>
      <Item Name="Template">Template.Storage</Item>
      <ArrayItems>
        <Size>NumArgs</Size>
        <ValuePointer>(clang::TemplateArgument *)(this+1)</ValuePointer>
      </ArrayItems>
    </Expand>
  </Type>
  <Type Name="clang::DeducedType">
    <Expand>
      <Item Name="isDeduced">(CanonicalType.Value.Value != this) || TypeBits.Dependent</Item>
      <ExpandedItem>*(clang::Type *)this,view(cmn)</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::DeducedTemplateSpecializationType">
    <DisplayString Condition="(CanonicalType.Value.Value != this) || TypeBits.Dependent">{CanonicalType,view(cpp)}</DisplayString>
    <DisplayString>{Template}</DisplayString>
    <Expand>
      <Item Name="Template">Template</Item>
      <Item Name="Deduced As" Condition="(CanonicalType.Value.Value != this) || TypeBits.Dependent">CanonicalType,view(cpp)</Item>
      <ExpandedItem>*(clang::DeducedType *)this</ExpandedItem>
      <Item Name="Template">Template</Item>
    </Expand>
  </Type>
  <Type Name="clang::ClassTemplateSpecializationDecl">
    <DisplayString>{*(CXXRecordDecl *)this,nd}{*TemplateArgs}</DisplayString>
    <Expand>
      <ExpandedItem>(CXXRecordDecl *)this,nd</ExpandedItem>
      <Item Name="TemplateArgs">TemplateArgs</Item>
    </Expand>
  </Type>
  <Type Name="clang::IdentifierInfo">
    <DisplayString Condition="Entry != 0">{((llvm::StringMapEntry&lt;clang::IdentifierInfo *&gt;*)Entry)+1,sb}</DisplayString>
    <Expand>
      <Item Condition="Entry != 0" Name="[Identifier]">((llvm::StringMapEntry&lt;clang::IdentifierInfo *&gt;*)Entry)+1,s</Item>
      <Item Name="Token Kind">(clang::tok::TokenKind)TokenID</Item>
    </Expand>
  </Type>
  <Type Name="clang::DeclarationName">
    <DisplayString Condition="Ptr == 0" IncludeView="cpp"></DisplayString>
    <DisplayString Condition="Ptr == 0">Empty</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredIdentifier" IncludeView="cpp">{*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredIdentifier">{{Identifier ({*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector">{{ObjC Zero Arg Selector (*{(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector">{{ObjC One Arg Selector (*{(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredCXXConstructorName">C++ Constructor {{*(clang::detail::CXXSpecialNameExtra *)(Ptr &amp; ~PtrMask)}}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredCXXDestructorName">C++ Destructor {{*(clang::detail::CXXSpecialNameExtra *)(Ptr &amp; ~PtrMask)}}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredCXXConversionFunctionName">C++ Conversion function {{*(clang::detail::CXXSpecialNameExtra *)(Ptr &amp; ~PtrMask)}}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredCXXOperatorName">C++ Operator {{*(clang::detail::CXXOperatorIdName *)(Ptr &amp; ~PtrMask)}}</DisplayString>    
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra"
                   IncludeView="cpp">{*(clang::detail::DeclarationNameExtra *)(Ptr &amp; ~PtrMask),view(cpp)}</DisplayString>
    <DisplayString Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra">{{Extra ({*(clang::detail::DeclarationNameExtra *)(Ptr &amp; ~PtrMask)})}}</DisplayString>
    <Expand>
      <Item Condition="(Ptr &amp; PtrMask) == StoredIdentifier" Name="[Identifier]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
      <Item Condition="(Ptr &amp; PtrMask) == StoredObjCZeroArgSelector" Name="[ObjC Zero Arg Selector]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
      <Item Condition="(Ptr &amp; PtrMask) == StoredObjCOneArgSelector" Name="[ObjC One Arg Selector]">*(clang::IdentifierInfo *)(Ptr &amp; ~PtrMask)</Item>
      <Item Condition="(Ptr &amp; PtrMask) == StoredCXXConstructorName" Name="[C++ Constructor]">*(clang::detail::CXXSpecialNameExtra *)(Ptr &amp; ~PtrMask)</Item>
      <Item Condition="(Ptr &amp; PtrMask) == StoredCXXDestructorName" Name="[C++ Destructor]">*(clang::detail::CXXSpecialNameExtra *)(Ptr &amp; ~PtrMask)</Item>
      <Item Condition="(Ptr &amp; PtrMask) == StoredCXXConversionFunctionName" Name="[C++ Conversion function]">*(clang::detail::CXXSpecialNameExtra *)(Ptr &amp; ~PtrMask)</Item>
      <Item Condition="(Ptr &amp; PtrMask) == StoredCXXOperatorName" Name="[C++ Operator]">*(clang::detail::CXXOperatorIdName *)(Ptr &amp; ~PtrMask)</Item>      
      <Item Condition="(Ptr &amp; PtrMask) == StoredDeclarationNameExtra" Name="[Extra]">(clang::detail::DeclarationNameExtra *)(Ptr &amp; ~PtrMask)</Item>
    </Expand>
  </Type>
  <Type Name="clang::detail::DeclarationNameExtra">
    <DisplayString Condition="ExtraKindOrNumArgs == CXXDeductionGuideName">C++ Deduction guide</DisplayString>
    <DisplayString Condition="ExtraKindOrNumArgs == CXXLiteralOperatorName">C++ Literal operator</DisplayString>
    <DisplayString Condition="ExtraKindOrNumArgs == CXXUsingDirective">C++ Using directive</DisplayString>  
    <DisplayString>{(clang::detail::DeclarationNameExtra::ExtraKind)ExtraKindOrNumArgs,en}{"  ",sb}{*this,view(cpp)}</DisplayString>
  </Type>
  <Type Name="clang::Token">
    <DisplayString Condition="Kind != clang::tok::identifier">{(clang::tok::TokenKind)Kind,en}</DisplayString>
    <DisplayString Condition="Kind == clang::tok::identifier">{{Identifier ({*(clang::IdentifierInfo *)(PtrData)})}}</DisplayString>
  </Type>
  <Type Name="clang::DeclSpec">
    <DisplayString>[{(clang::DeclSpec::SCS)StorageClassSpec}], [{(clang::TypeSpecifierType)TypeSpecType}]</DisplayString>
  </Type>
  <Type Name="clang::PragmaHandler">
    <DisplayString>{Name,s}</DisplayString>
  </Type>
  <Type Name="clang::FileEntry">
    <DisplayString>{Name,s}</DisplayString>
  </Type>
  <Type Name="clang::DirectoryEntry">
    <DisplayString>{Name,s}</DisplayString>
  </Type>
  <Type Name="clang::VarDecl::VarDeclBitfields">
    <Expand>
      <Item Name="StorageClass">(clang::StorageClass)SClass</Item>
      <Item Name="ThreadStorageClass">(clang::ThreadStorageClassSpecifier)TSCSpec</Item>
      <Item Name="InitStyle">(clang::VarDecl::InitializationStyle)InitStyle</Item>
    </Expand>
  </Type>
  <Type Name="clang::DeclaratorDecl">
    <DisplayString>{DeclType,view(cpp)} {Name,view(cpp)}</DisplayString>
    <Expand>
      <Item Name="Name">Name</Item>
      <Item Name="DeclType">DeclType</Item>
    </Expand>
  </Type>
  <Type Name="clang::VarDecl">
    <DisplayString>{*(DeclaratorDecl*)this,nd}</DisplayString>
    <Expand>
      <ExpandedItem>*(DeclaratorDecl*)this,nd</ExpandedItem>
      <Item Name="VarDeclBits">VarDeclBits</Item>
    </Expand>
  </Type>
  <Type Name="clang::ParmVarDecl">
    <DisplayString>{*(VarDecl*)this,nd}</DisplayString>
    <Expand>
      <Item Name="ParmVarDeclBits">ParmVarDeclBits</Item>
      <ExpandedItem>*(VarDecl*)this,nd</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::FunctionDecl">
    <DisplayString IncludeView="retType">{*(clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType,view(retType)}</DisplayString>
    <DisplayString IncludeView="parm0" Condition="0 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;FunctionTypeBits.NumParams"></DisplayString>
    <DisplayString IncludeView="parm0">{*ParamInfo[0]}{*this,view(parm1)nd}</DisplayString>
    <DisplayString IncludeView="parm1" Condition="1 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;FunctionTypeBits.NumParams"></DisplayString>
    <DisplayString IncludeView="parm1">, {*ParamInfo[1]}{*this,view(parm2)nd}</DisplayString>
    <DisplayString IncludeView="parm2" Condition="2 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;FunctionTypeBits.NumParams"></DisplayString>
    <DisplayString IncludeView="parm2">, {*ParamInfo[2]}{*this,view(parm3)nd}</DisplayString>
    <DisplayString IncludeView="parm3" Condition="3 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;FunctionTypeBits.NumParams"></DisplayString>
    <DisplayString IncludeView="parm3">, {*ParamInfo[3]}{*this,view(parm4)nd}</DisplayString>
    <DisplayString IncludeView="parm4" Condition="4 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;FunctionTypeBits.NumParams"></DisplayString>
    <DisplayString IncludeView="parm4">, {*ParamInfo[4]}{*this,view(parm5)nd}</DisplayString>
    <DisplayString IncludeView="parm5" Condition="5 == ((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;FunctionTypeBits.NumParams"></DisplayString>
    <DisplayString IncludeView="parm5">, /* expand for more params */</DisplayString>
    <DisplayString>{*this,view(retType)nd} {Name,view(cpp)nd}({*this,view(parm0)nd})</DisplayString>
    <Expand>
      <Item Name="ReturnType">*this,view(retType)nd</Item>
      <Synthetic Name="Parameter Types">
        <DisplayString>{*this,view(parm0)nd}</DisplayString>
        <Expand>
          <ArrayItems>
            <Size>((clang::FunctionProtoType *)((clang::ExtQualsTypeCommonBase *)(((uintptr_t)DeclType.Value.Value) &amp; ~15))-&gt;BaseType)-&gt;FunctionTypeBits.NumParams</Size>
            <ValuePointer>ParamInfo</ValuePointer>
          </ArrayItems>
        </Expand>
      </Synthetic>
    </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>
    <DisplayString IncludeView="parm1" Condition="NumParams==1"></DisplayString>
    <DisplayString IncludeView="parm1">, {*((NamedDecl **)(this+1))[1],view(cpp)}{*this,view(parm2)}</DisplayString>
    <DisplayString IncludeView="parm2" Condition="NumParams==2"></DisplayString>
    <DisplayString IncludeView="parm2">, {*((NamedDecl **)(this+1))[2],view(cpp)}{*this,view(parm3)}</DisplayString>
    <DisplayString IncludeView="parm3" Condition="NumParams==3"></DisplayString>
    <DisplayString IncludeView="parm3">, {*((NamedDecl **)(this+1))[3],view(cpp)}{*this,view(parm4)}</DisplayString>
    <DisplayString IncludeView="parm4" Condition="NumParams==4"></DisplayString>
    <DisplayString IncludeView="parm4">, {*((NamedDecl **)(this+1))[4],view(cpp)}{*this,view(parm5)}</DisplayString>
    <DisplayString IncludeView="parm5" Condition="NumParams==5"></DisplayString>
    <DisplayString IncludeView="parm5">, /* Expand for more params */</DisplayString>
    <DisplayString>&lt;{*this,view(parm0)}&gt;</DisplayString>
    <Expand>
      <ArrayItems>
        <Size>NumParams</Size>
      <ValuePointer>(NamedDecl **)(this+1)</ValuePointer>
      </ArrayItems>
    </Expand>
  </Type>
  <Type Name="clang::Stmt">
    <DisplayString>{(clang::Stmt::StmtClass)StmtBits.sClass,en}</DisplayString>
    <Expand>
      <Item Name="Class">(clang::Stmt::StmtClass)StmtBits.sClass,en</Item>
    </Expand>
  </Type>
  <Type Name="clang::Expr">
    <DisplayString>Expression of class {(clang::Stmt::StmtClass)StmtBits.sClass,en} and type {TR,view(cpp)}</DisplayString>
  </Type>
  <Type Name="clang::DeclAccessPair">
    <DisplayString IncludeView="access" Condition="(Ptr&amp;Mask) == clang::AS_public">public</DisplayString>
    <DisplayString IncludeView="access" Condition="(Ptr&amp;Mask) == clang::AS_protected">protected</DisplayString>
    <DisplayString IncludeView="access" Condition="(Ptr&amp;Mask) == clang::AS_private">private</DisplayString>
    <DisplayString IncludeView="access" Condition="(Ptr&amp;Mask) == clang::AS_none">b</DisplayString>
    <DisplayString IncludeView="decl">{*(clang::NamedDecl *)(Ptr&amp;~Mask)}</DisplayString>
    <DisplayString>{*this,view(access)} {*this,view(decl)}</DisplayString>
    <Expand>
      <Item Name="access">(clang::AccessSpecifier)(Ptr&amp;Mask),en</Item>
      <Item Name="decl">*(clang::NamedDecl *)(Ptr&amp;~Mask)</Item>
    </Expand>
  </Type>
  <Type Name="clang::UnresolvedSet&lt;*&gt;">
    <DisplayString>{Decls}</DisplayString>
    <Expand>
      <ExpandedItem>Decls</ExpandedItem>
    </Expand>
  </Type>
  <Type Name="clang::LookupResult">
    <DisplayString Condition="ResultKind == clang::LookupResult::Ambiguous">{Ambiguity,en}: {Decls}</DisplayString>
    <DisplayString>{ResultKind,en}: {Decls}</DisplayString>
  </Type>
  <Type Name="clang::ActionResult&lt;*, 0&gt;">
    <DisplayString Condition="Invalid">Invalid</DisplayString>
    <DisplayString Condition="!*(void **)&amp;Val">Unset</DisplayString>
    <DisplayString>{Val}</DisplayString>
  </Type>
  <Type Name="clang::ActionResult&lt;*, 1&gt;">
    <DisplayString Condition="PtrWithInvalid&amp;1">Invalid</DisplayString>
    <DisplayString Condition="!PtrWithInvalid">Unset</DisplayString>
    <DisplayString>{($T1)(PtrWithInvalid&amp;~1)}</DisplayString>
    <Expand>
      <Item Name="Invalid">(bool)(PtrWithInvalid&amp;1)</Item>
      <Item Name="Val">($T1)(PtrWithInvalid&amp;~1)</Item>
    </Expand>
  </Type>
</AutoVisualizer>
