From 6d5c059076455da0429f6ba4f11d3185c65ef362 Mon Sep 17 00:00:00 2001 From: Mike Spertus Date: Sun, 6 Jan 2019 04:58:48 +0000 Subject: [PATCH] Have MSVC Visualizer for DeducedTemplateSpecializationType show both the original template and deduced specialization Now appears in the Autos window something like - MyType DeducedTemplateSpecializationType {struct Y} |- Template template struct Y; |- Deduced As struct Y |- isDeduced true bool |- TypeClass DeducedTemplateSpecialization (36) |- Flags No TypeBits set beyond TypeClass |- Canonical RecordType {struct Y} Also changed QualType visualization to auto-expand the BaseType git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@350487 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/ClangVisualizers/clang.natvis | 37 +++++++++++++++++++---------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/utils/ClangVisualizers/clang.natvis b/utils/ClangVisualizers/clang.natvis index dad00c5618..17556f9cab 100644 --- a/utils/ClangVisualizers/clang.natvis +++ b/utils/ClangVisualizers/clang.natvis @@ -40,16 +40,16 @@ For later versions of Visual Studio, no setup is required--> {*(clang::LocInfoType *)this} {*this,view(poly)} No visualizer yet for {(clang::Type::TypeClass)TypeBits.TC,en}Type - Dependent + Dependent{" ",sb} - InstantiationDependent + InstantiationDependent{" ",sb} - VariablyModified + VariablyModified{" ",sb} - ContainsUnexpandedParameterPack + ContainsUnexpandedParameterPack{" ",sb} CachedLinkage: {(clang::Linkage)TypeBits.CachedLinkage,en} CachedLocalOrUnnamed - CachedLinkage: {(clang::Linkage)TypeBits.CachedLinkage,en} + CachedLinkage: {(clang::Linkage)TypeBits.CachedLinkage,en}{" ",sb} FromAST @@ -162,13 +162,13 @@ For later versions of Visual Studio, no setup is required--> implicit{" ",sb} - {*this,view(implicit)} + {*this,view(implicit)nd} {*this,view(modifiers)}{Name,view(cpp)} - {*this,view(modifiers)}struct {Name,view(cpp)} - {*this,view(modifiers)}interface {Name,view(cpp)} - {*this,view(modifiers)}union {Name,view(cpp)} - {*this,view(modifiers)}class {Name,view(cpp)} - {*this,view(modifiers)}enum {Name,view(cpp)} + {*this,view(modifiers)nd}struct {Name,view(cpp)} + {*this,view(modifiers)nd}interface {Name,view(cpp)} + {*this,view(modifiers)nd}union {Name,view(cpp)} + {*this,view(modifiers)nd}class {Name,view(cpp)} + {*this,view(modifiers)nd}enum {Name,view(cpp)} (clang::DeclContext *)this @@ -227,6 +227,7 @@ For later versions of Visual Studio, no setup is required--> + {*TTPDecl} Non-canonical: {*TTPDecl} Canonical: {CanTTPTInfo} @@ -267,7 +268,7 @@ For later versions of Visual Studio, no setup is required--> {*((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType}{*this,view(fastQuals)} *this,view(fastQuals) - *((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType + *((clang::ExtQualsTypeCommonBase *)(((uintptr_t)Value.Value) & ~(uintptr_t)((1 << 4) - 1)))->BaseType @@ -419,9 +420,20 @@ For later versions of Visual Studio, no setup is required--> + {CanonicalType,view(cpp)} {Template} + Template + CanonicalType,view(cpp) *(clang::DeducedType *)this + Template + + + + {*(CXXRecordDecl *)this,nd}{*TemplateArgs} + + (CXXRecordDecl *)this,nd + TemplateArgs @@ -532,7 +544,6 @@ For later versions of Visual Studio, no setup is required--> - *(clang::Type *)this, view(cmn) -- 2.40.0