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)