diff --git a/src/Generator.Tests/AST/TestAST.cs b/src/Generator.Tests/AST/TestAST.cs index 615d811e..b9a56915 100644 --- a/src/Generator.Tests/AST/TestAST.cs +++ b/src/Generator.Tests/AST/TestAST.cs @@ -491,7 +491,11 @@ namespace CppSharp.Generator.Tests.AST [Test] public void TestPrintingConstPointerWithConstType() { - var cppTypePrinter = new CppTypePrinter(Context) { ScopeKind = TypePrintScopeKind.Qualified }; + var cppTypePrinter = new CppTypePrinter(Context) + { + ScopeKind = TypePrintScopeKind.Qualified, + ResolveTypeMaps = false + }; var builtin = new BuiltinType(PrimitiveType.Char); var pointee = new QualifiedType(builtin, new TypeQualifiers { IsConst = true }); var pointer = new QualifiedType(new PointerType(pointee), new TypeQualifiers { IsConst = true }); diff --git a/src/Generator/Generators/C/CppTypePrinter.cs b/src/Generator/Generators/C/CppTypePrinter.cs index 5e61ddcc..a1f7fc32 100644 --- a/src/Generator/Generators/C/CppTypePrinter.cs +++ b/src/Generator/Generators/C/CppTypePrinter.cs @@ -127,6 +127,9 @@ namespace CppSharp.Generators.C public override TypePrinterResult VisitPointerType(PointerType pointer, TypeQualifiers quals) { + if (FindTypeMap(pointer, out TypePrinterResult result)) + return result; + var pointeeType = pointer.Pointee.Visit(this, pointer.QualifiedPointee.Qualifiers); if (pointeeType.TypeMap != null) return pointeeType; diff --git a/src/Generator/Generators/CLI/CLISources.cs b/src/Generator/Generators/CLI/CLISources.cs index 1651ab15..946e307b 100644 --- a/src/Generator/Generators/CLI/CLISources.cs +++ b/src/Generator/Generators/CLI/CLISources.cs @@ -1218,7 +1218,7 @@ namespace CppSharp.Generators.CLI if (isRef) { - var typePrinter = new CppTypePrinter(Context); + var typePrinter = new CppTypePrinter(Context) { ResolveTypeMaps = false }; var type = paramType.Visit(typePrinter); if (param.IsInOut)