From e33cc3d82d79e96ea737110668de5a0fb885a2a0 Mon Sep 17 00:00:00 2001 From: triton Date: Tue, 14 May 2013 18:33:06 +0100 Subject: [PATCH] Template specializations types now keep their desugared version, if available. --- src/Bridge/Type.cs | 2 ++ src/Parser/Parser.cpp | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Bridge/Type.cs b/src/Bridge/Type.cs index 942d32c2..3dc54234 100644 --- a/src/Bridge/Type.cs +++ b/src/Bridge/Type.cs @@ -364,6 +364,8 @@ namespace CppSharp public Template Template; + public Type Desugared; + public override T Visit(ITypeVisitor visitor, TypeQualifiers quals = new TypeQualifiers()) { diff --git a/src/Parser/Parser.cpp b/src/Parser/Parser.cpp index 28762b49..fcbd1f2b 100644 --- a/src/Parser/Parser.cpp +++ b/src/Parser/Parser.cpp @@ -925,7 +925,9 @@ CppSharp::Type^ Parser::WalkType(clang::QualType QualType, clang::TypeLoc* TL, TemplateName Name = TS->getTemplateName(); TST->Template = safe_cast(WalkDeclaration( Name.getAsTemplateDecl(), 0, /*IgnoreSystemDecls=*/false)); - + if (TS->isSugared()) + TST->Desugared = WalkType(TS->desugar()); + auto TypeLocClass = TL->getTypeLocClass(); if (TypeLocClass == TypeLoc::Qualified)