Browse Source

TypeMap: cleanup patches from previous commits

pull/1802/head
Deadlocklogic 2 years ago
parent
commit
64c3b240a3
  1. 34
      src/Generator/Types/Std/Stdlib.CLI.cs
  2. 32
      src/Generator/Types/Std/Stdlib.CSharp.cs
  3. 60
      src/Generator/Types/TypeMap.cs
  4. 12
      tests/dotnet/CLI/CLI.Gen.cs
  5. 36
      tests/dotnet/CSharp/CSharp.Gen.cs
  6. 12
      tests/dotnet/Common/Common.Gen.cs

34
src/Generator/Types/Std/Stdlib.CLI.cs

@ -11,12 +11,12 @@ namespace CppSharp.Types.Std.CLI @@ -11,12 +11,12 @@ namespace CppSharp.Types.Std.CLI
[TypeMap("const char*", GeneratorKindID = GeneratorKind.CLI_ID)]
public class ConstCharPointer : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new CILType(typeof(string));
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
ctx.Before.WriteLine(
"auto _{0} = clix::marshalString<clix::E_UTF8>({1});",
@ -25,7 +25,7 @@ namespace CppSharp.Types.Std.CLI @@ -25,7 +25,7 @@ namespace CppSharp.Types.Std.CLI
ctx.Return.Write("_{0}.c_str()", ctx.ArgName);
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
if (ctx.Parameter != null && !ctx.Parameter.IsOut &&
!ctx.Parameter.IsInOut)
@ -83,18 +83,18 @@ namespace CppSharp.Types.Std.CLI @@ -83,18 +83,18 @@ namespace CppSharp.Types.Std.CLI
[TypeMap("basic_string<char, char_traits<char>, allocator<char>>", GeneratorKindID = GeneratorKind.CLI_ID)]
public class String : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new CILType(typeof(string));
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
ctx.Return.Write("clix::marshalString<clix::E_UTF8>({0})",
ctx.Parameter.Name);
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
ctx.Return.Write("clix::marshalString<clix::E_UTF8>({0})",
ctx.ReturnVarName);
@ -104,18 +104,18 @@ namespace CppSharp.Types.Std.CLI @@ -104,18 +104,18 @@ namespace CppSharp.Types.Std.CLI
[TypeMap("std::wstring", GeneratorKindID = GeneratorKind.CLI_ID)]
public class WString : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new CILType(typeof(string));
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
ctx.Return.Write("clix::marshalString<clix::E_UTF16>({0})",
ctx.Parameter.Name);
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
ctx.Return.Write("clix::marshalString<clix::E_UTF16>({0})",
ctx.ReturnVarName);
@ -143,13 +143,13 @@ namespace CppSharp.Types.Std.CLI @@ -143,13 +143,13 @@ namespace CppSharp.Types.Std.CLI
}
}
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new CustomType(
$"::System::Collections::Generic::List<{ctx.GetTemplateParameterList()}>^");
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
var desugared = Type.Desugar();
var templateType = desugared as TemplateSpecializationType;
@ -207,7 +207,7 @@ namespace CppSharp.Types.Std.CLI @@ -207,7 +207,7 @@ namespace CppSharp.Types.Std.CLI
ctx.Return.Write(tmpVarName);
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
var desugared = Type.Desugar();
var templateType = desugared as TemplateSpecializationType;
@ -261,19 +261,19 @@ namespace CppSharp.Types.Std.CLI @@ -261,19 +261,19 @@ namespace CppSharp.Types.Std.CLI
{
public override bool IsIgnored { get { return true; } }
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
var type = Type as TemplateSpecializationType;
return new CustomType(
$@"::System::Collections::Generic::Dictionary<{type.Arguments[0].Type}, {type.Arguments[1].Type}>^");
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
throw new System.NotImplementedException();
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
throw new System.NotImplementedException();
}
@ -294,12 +294,12 @@ namespace CppSharp.Types.Std.CLI @@ -294,12 +294,12 @@ namespace CppSharp.Types.Std.CLI
[TypeMap("basic_ostream<char, char_traits<char>>", GeneratorKind.CLI_ID)]
public class OStream : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new CILType(typeof(System.IO.TextWriter));
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
var marshal = (CLIMarshalManagedToNativePrinter)ctx.MarshalToNative;
if (!ctx.Parameter.Type.Desugar().IsPointer())

32
src/Generator/Types/Std/Stdlib.CSharp.cs

@ -14,41 +14,41 @@ namespace CppSharp.Types.Std.CSharp @@ -14,41 +14,41 @@ namespace CppSharp.Types.Std.CSharp
[TypeMap("int", GeneratorKindID = GeneratorKind.CSharp_ID)]
public class Int : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind) =>
public override Type SignatureType(TypePrinterContext ctx) =>
CSharpTypePrinter.GetSignedType(Context.TargetInfo.IntWidth);
}
[TypeMap("unsigned int", GeneratorKindID = GeneratorKind.CSharp_ID)]
public class UnsignedInt : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind) =>
public override Type SignatureType(TypePrinterContext ctx) =>
CSharpTypePrinter.GetUnsignedType(Context.TargetInfo.IntWidth);
}
[TypeMap("long", GeneratorKindID = GeneratorKind.CSharp_ID)]
public class Long : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind) =>
public override Type SignatureType(TypePrinterContext ctx) =>
CSharpTypePrinter.GetSignedType(Context.TargetInfo.LongWidth);
}
[TypeMap("unsigned long", GeneratorKindID = GeneratorKind.CSharp_ID)]
public class UnsignedLong : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind) =>
public override Type SignatureType(TypePrinterContext ctx) =>
CSharpTypePrinter.GetUnsignedType(Context.TargetInfo.LongWidth);
}
[TypeMap("char", GeneratorKindID = GeneratorKind.CSharp_ID)]
public class Char : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new CILType(ctx.Kind == TypePrinterContextKind.Native ||
!Context.Options.MarshalCharAsManagedChar ? typeof(sbyte) : typeof(char));
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
if (Context.Options.MarshalCharAsManagedChar)
ctx.Return.Write("global::System.Convert.ToSByte({0})",
@ -57,7 +57,7 @@ namespace CppSharp.Types.Std.CSharp @@ -57,7 +57,7 @@ namespace CppSharp.Types.Std.CSharp
ctx.Return.Write(ctx.Parameter.Name);
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
if (Context.Options.MarshalCharAsManagedChar)
ctx.Return.Write("global::System.Convert.ToChar({0})",
@ -70,7 +70,7 @@ namespace CppSharp.Types.Std.CSharp @@ -70,7 +70,7 @@ namespace CppSharp.Types.Std.CSharp
[TypeMap("char16_t", GeneratorKindID = GeneratorKind.CSharp_ID)]
public class Char16T : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new CILType(typeof(char));
}
@ -79,7 +79,7 @@ namespace CppSharp.Types.Std.CSharp @@ -79,7 +79,7 @@ namespace CppSharp.Types.Std.CSharp
[TypeMap("wchar_t", GeneratorKindID = GeneratorKind.CSharp_ID)]
public class WCharT : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new CILType(typeof(char));
}
@ -88,7 +88,7 @@ namespace CppSharp.Types.Std.CSharp @@ -88,7 +88,7 @@ namespace CppSharp.Types.Std.CSharp
[TypeMap("const char*", GeneratorKindID = GeneratorKind.CSharp_ID)]
public class ConstCharPointer : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
if (ctx.Kind == TypePrinterContextKind.Managed)
return new CILType(typeof(string));
@ -117,7 +117,7 @@ namespace CppSharp.Types.Std.CSharp @@ -117,7 +117,7 @@ namespace CppSharp.Types.Std.CSharp
$"{Context.Options.Encoding.EncodingName} is not supported yet.");
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
string param = ctx.Parameter.Name;
if (ctx.Parameter.Usage == ParameterUsage.Unknown &&
@ -194,7 +194,7 @@ namespace CppSharp.Types.Std.CSharp @@ -194,7 +194,7 @@ namespace CppSharp.Types.Std.CSharp
ctx.Return.Write($"{bytePtr}");
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
if (ctx.Parameter != null && !ctx.Parameter.IsOut &&
!ctx.Parameter.IsInOut)
@ -304,7 +304,7 @@ namespace CppSharp.Types.Std.CSharp @@ -304,7 +304,7 @@ namespace CppSharp.Types.Std.CSharp
[TypeMap("basic_string<char, char_traits<char>, allocator<char>>", GeneratorKindID = GeneratorKind.CSharp_ID)]
public class String : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
if (ctx.Kind == TypePrinterContextKind.Managed)
return new CILType(typeof(string));
@ -316,7 +316,7 @@ namespace CppSharp.Types.Std.CSharp @@ -316,7 +316,7 @@ namespace CppSharp.Types.Std.CSharp
return new CustomType(basicString.Visit(typePrinter).Type);
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
Type type = ctx.Parameter.Type.Desugar();
ClassTemplateSpecialization basicString = GetBasicString(type);
@ -361,7 +361,7 @@ namespace CppSharp.Types.Std.CSharp @@ -361,7 +361,7 @@ namespace CppSharp.Types.Std.CSharp
}
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
var type = Type.Desugar(resolveTemplateSubstitution: false);
ClassTemplateSpecialization basicString = GetBasicString(type);
@ -415,7 +415,7 @@ namespace CppSharp.Types.Std.CSharp @@ -415,7 +415,7 @@ namespace CppSharp.Types.Std.CSharp
[TypeMap("FILE", GeneratorKindID = GeneratorKind.CSharp_ID)]
public class FILE : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new CILType(typeof(System.IntPtr));
}

60
src/Generator/Types/TypeMap.cs

@ -2,10 +2,7 @@ @@ -2,10 +2,7 @@
using CppSharp.AST;
using CppSharp.Generators;
using CppSharp.Generators.AST;
using CppSharp.Generators.C;
using CppSharp.Generators.CLI;
using CppSharp.Generators.Cpp;
using CppSharp.Generators.CSharp;
using Attribute = System.Attribute;
using Type = CppSharp.AST.Type;
@ -51,64 +48,19 @@ namespace CppSharp.Types @@ -51,64 +48,19 @@ namespace CppSharp.Types
/// </summary>
public virtual bool DoesMarshalling => true;
public Type SignatureType(TypePrinterContext ctx)
public virtual Type SignatureType(TypePrinterContext ctx)
{
return SignatureType(ctx, Context.Options.GeneratorKind);
return new CILType(typeof(object));
}
public virtual Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public virtual void MarshalToNative(MarshalContext ctx)
{
switch (kind)
{
case var _ when ReferenceEquals(kind, GeneratorKind.C):
case var _ when ReferenceEquals(kind, GeneratorKind.CPlusPlus):
case var _ when ReferenceEquals(kind, GeneratorKind.CLI):
case var _ when ReferenceEquals(kind, GeneratorKind.CSharp):
return new CILType(typeof(object));
default:
throw new System.NotImplementedException();
}
ctx.Return.Write(ctx.Parameter.Name);
}
public void MarshalToNative(MarshalContext ctx)
public virtual void MarshalToManaged(MarshalContext ctx)
{
MarshalToNative(ctx, Context.Options.GeneratorKind);
}
public virtual void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
{
kind ??= Context.Options.GeneratorKind;
switch (kind)
{
case var _ when ReferenceEquals(kind, GeneratorKind.C):
case var _ when ReferenceEquals(kind, GeneratorKind.CPlusPlus):
case var _ when ReferenceEquals(kind, GeneratorKind.CLI):
case var _ when ReferenceEquals(kind, GeneratorKind.CSharp):
ctx.Return.Write(ctx.Parameter.Name);
return;
default:
throw new System.NotImplementedException();
}
}
public void MarshalToManaged(MarshalContext ctx)
{
MarshalToManaged(ctx, Context.Options.GeneratorKind);
}
public virtual void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
{
switch (kind)
{
case var _ when ReferenceEquals(kind, GeneratorKind.C):
case var _ when ReferenceEquals(kind, GeneratorKind.CPlusPlus):
case var _ when ReferenceEquals(kind, GeneratorKind.CLI):
case var _ when ReferenceEquals(kind, GeneratorKind.CSharp):
ctx.Return.Write(ctx.ReturnVarName);
return;
default:
throw new System.NotImplementedException();
}
ctx.Return.Write(ctx.ReturnVarName);
}
#region C# backend

12
tests/dotnet/CLI/CLI.Gen.cs

@ -9,12 +9,12 @@ namespace CppSharp.Tests @@ -9,12 +9,12 @@ namespace CppSharp.Tests
[TypeMap("IgnoredClassTemplateForEmployee", GeneratorKindID = GeneratorKind.CLI_ID)]
public class IgnoredClassTemplateForEmployeeMap : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new CustomType("CLI::Employee^");
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
ctx.Return.Write($"gcnew CLI::Employee({ctx.ReturnVarName}.m_employee)");
}
@ -25,17 +25,17 @@ namespace CppSharp.Tests @@ -25,17 +25,17 @@ namespace CppSharp.Tests
[TypeMap("TestMappedTypeNonConstRefParam", GeneratorKindID = GeneratorKind.CLI_ID)]
public class TestMappedTypeNonConstRefParamTypeMap : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new CILType(typeof(string));
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
ctx.Return.Write("clix::marshalString<clix::E_UTF8>({0}.m_str)", ctx.ReturnVarName);
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
if (ctx.Parameter.Usage == ParameterUsage.InOut)
{
@ -57,7 +57,7 @@ namespace CppSharp.Tests @@ -57,7 +57,7 @@ namespace CppSharp.Tests
[TypeMap("TestMappedTypeNonConstRefParam", GeneratorKindID = GeneratorKind.CPlusPlus_ID)]
public class TestMappedTypeNonConstRefParamTypeMap : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
var tagType = ctx.Type as TagType;
var typePrinter = new CppTypePrinter(Context);

36
tests/dotnet/CSharp/CSharp.Gen.cs

@ -120,17 +120,17 @@ namespace CppSharp.Tests @@ -120,17 +120,17 @@ namespace CppSharp.Tests
[TypeMap("boolean_t")]
public class BooleanTypeMap : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new BuiltinType(PrimitiveType.Bool);
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
ctx.Return.Write(ctx.Parameter.Name);
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
ctx.Return.Write(ctx.ReturnVarName);
}
@ -144,12 +144,12 @@ namespace CppSharp.Tests @@ -144,12 +144,12 @@ namespace CppSharp.Tests
return string.Empty;
}
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return GetEnumType(ctx.Type);
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
if (ctx.Parameter.Type.Desugar().IsAddress())
ctx.Return.Write("new global::System.IntPtr(&{0})", ctx.Parameter.Name);
@ -157,7 +157,7 @@ namespace CppSharp.Tests @@ -157,7 +157,7 @@ namespace CppSharp.Tests
ctx.Return.Write(ctx.Parameter.Name);
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
if (ctx.ReturnType.Type.Desugar().IsAddress())
{
@ -196,17 +196,17 @@ namespace CppSharp.Tests @@ -196,17 +196,17 @@ namespace CppSharp.Tests
return string.Empty;
}
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new TagType(flags ?? (flags = Context.ASTContext.FindEnum("Flags").First()));
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
ctx.Return.Write(ctx.Parameter.Name);
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
ctx.Return.Write(ctx.ReturnVarName);
}
@ -229,7 +229,7 @@ namespace CppSharp.Tests @@ -229,7 +229,7 @@ namespace CppSharp.Tests
}
}
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
if (ctx.Kind == TypePrinterContextKind.Native)
{
@ -249,7 +249,7 @@ namespace CppSharp.Tests @@ -249,7 +249,7 @@ namespace CppSharp.Tests
ctx.GetTemplateParameterList()}>");
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
// pointless, put just so that the generated code compiles
var type = (TemplateSpecializationType)ctx.Parameter.Type.Desugar();
@ -259,7 +259,7 @@ namespace CppSharp.Tests @@ -259,7 +259,7 @@ namespace CppSharp.Tests
ctx.Return.Write("new {0}()", specialization.Visit(typePrinter));
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
ctx.Return.Write(ctx.ReturnVarName);
}
@ -268,18 +268,18 @@ namespace CppSharp.Tests @@ -268,18 +268,18 @@ namespace CppSharp.Tests
[TypeMap("TypeMappedWithOperator")]
public class TypeMappedWithOperator : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
// doesn't matter, we just need it to compile
return new BuiltinType(PrimitiveType.Int);
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
ctx.Return.Write(ctx.Parameter.Name);
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
ctx.Return.Write(ctx.ReturnVarName);
}
@ -288,7 +288,7 @@ namespace CppSharp.Tests @@ -288,7 +288,7 @@ namespace CppSharp.Tests
[TypeMap("QString")]
public class QString : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
if (ctx.Kind == TypePrinterContextKind.Native)
{
@ -299,13 +299,13 @@ namespace CppSharp.Tests @@ -299,13 +299,13 @@ namespace CppSharp.Tests
return new CILType(typeof(string));
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
ctx.Return.Write(ctx.Parameter.Type.Desugar().IsAddress() ?
"global::System.IntPtr.Zero" : "\"test\"");
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
ctx.Return.Write("\"test\"");
}

12
tests/dotnet/Common/Common.Gen.cs

@ -12,17 +12,17 @@ namespace CppSharp.Tests @@ -12,17 +12,17 @@ namespace CppSharp.Tests
[TypeMap("TypeMappedIndex", GeneratorKindID = GeneratorKind.CLI_ID)]
public class TypeMappedIndex : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new BuiltinType(PrimitiveType.UShort);
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
ctx.Return.Write(ctx.ReturnVarName);
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
ctx.Return.Write("::TypeMappedIndex()");
}
@ -34,17 +34,17 @@ namespace CppSharp.Tests @@ -34,17 +34,17 @@ namespace CppSharp.Tests
[TypeMap("TypeMappedIndex", GeneratorKindID = GeneratorKind.CSharp_ID)]
public class TypeMappedIndex : TypeMap
{
public override Type SignatureType(TypePrinterContext ctx, GeneratorKind kind)
public override Type SignatureType(TypePrinterContext ctx)
{
return new BuiltinType(PrimitiveType.UShort);
}
public override void MarshalToManaged(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToManaged(MarshalContext ctx)
{
ctx.Return.Write(ctx.ReturnVarName);
}
public override void MarshalToNative(MarshalContext ctx, GeneratorKind kind)
public override void MarshalToNative(MarshalContext ctx)
{
ctx.Return.Write("IntPtr.Zero");
}

Loading…
Cancel
Save