summaryrefslogtreecommitdiff
path: root/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators
diff options
context:
space:
mode:
Diffstat (limited to 'modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators')
-rw-r--r--modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalType.cs3
-rw-r--r--modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalUtils.cs24
2 files changed, 10 insertions, 17 deletions
diff --git a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalType.cs b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalType.cs
index 3b7a50e7a6..e967cbe662 100644
--- a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalType.cs
+++ b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalType.cs
@@ -53,7 +53,6 @@ namespace Godot.SourceGenerators
Vector3Array,
ColorArray,
GodotObjectOrDerivedArray,
- SystemObjectArray,
SystemArrayOfSupportedType,
// Generics
@@ -66,7 +65,7 @@ namespace Godot.SourceGenerators
GenericIEnumerable,
// Variant
- SystemObject,
+ Variant,
// Classes
GodotObjectOrDerived,
diff --git a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalUtils.cs b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalUtils.cs
index cd4c8ff828..d132b6304f 100644
--- a/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalUtils.cs
+++ b/modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators/MarshalUtils.cs
@@ -86,7 +86,6 @@ namespace Godot.SourceGenerators
MarshalType.Vector3Array => VariantType.PackedVector3Array,
MarshalType.ColorArray => VariantType.PackedColorArray,
MarshalType.GodotObjectOrDerivedArray => VariantType.Array,
- MarshalType.SystemObjectArray => VariantType.Array,
MarshalType.SystemArrayOfSupportedType => VariantType.Array,
MarshalType.GodotGenericDictionary => VariantType.Dictionary,
MarshalType.GodotGenericArray => VariantType.Array,
@@ -95,7 +94,7 @@ namespace Godot.SourceGenerators
MarshalType.GenericIDictionary => VariantType.Dictionary,
MarshalType.GenericICollection => VariantType.Array,
MarshalType.GenericIEnumerable => VariantType.Array,
- MarshalType.SystemObject => VariantType.Nil,
+ MarshalType.Variant => VariantType.Nil,
MarshalType.GodotObjectOrDerived => VariantType.Object,
MarshalType.StringName => VariantType.StringName,
MarshalType.NodePath => VariantType.NodePath,
@@ -140,8 +139,6 @@ namespace Godot.SourceGenerators
return MarshalType.Double;
case SpecialType.System_String:
return MarshalType.String;
- case SpecialType.System_Object:
- return MarshalType.SystemObject;
default:
{
var typeKind = type.TypeKind;
@@ -175,6 +172,7 @@ namespace Godot.SourceGenerators
{ Name: "RID" } => MarshalType.RID,
{ Name: "Callable" } => MarshalType.Callable,
{ Name: "SignalInfo" } => MarshalType.SignalInfo,
+ { Name: "Variant" } => MarshalType.Variant,
_ => null
};
}
@@ -198,8 +196,6 @@ namespace Godot.SourceGenerators
return MarshalType.Float64Array;
case SpecialType.System_String:
return MarshalType.StringArray;
- case SpecialType.System_Object:
- return MarshalType.SystemObjectArray;
}
if (elementType.SimpleDerivesFrom(typeCache.GodotObjectType))
@@ -323,6 +319,9 @@ namespace Godot.SourceGenerators
return null;
}
+ private static StringBuilder Append(this StringBuilder source, string a, string b)
+ => source.Append(a).Append(b);
+
private static StringBuilder Append(this StringBuilder source, string a, string b, string c)
=> source.Append(a).Append(b).Append(c);
@@ -346,7 +345,6 @@ namespace Godot.SourceGenerators
string c, string d, string e, string f, string g, string h)
=> source.Append(a).Append(b).Append(c).Append(d).Append(e).Append(f).Append(g).Append(h);
- private const string Marshaling = "global::Godot.NativeInterop.Marshaling";
private const string VariantUtils = "global::Godot.NativeInterop.VariantUtils";
public static StringBuilder AppendVariantToManagedExpr(this StringBuilder source,
@@ -440,8 +438,6 @@ namespace Godot.SourceGenerators
MarshalType.GodotObjectOrDerivedArray =>
source.Append(VariantUtils, ".ConvertToSystemArrayOfGodotObject<",
((IArrayTypeSymbol)typeSymbol).ElementType.FullQualifiedName(), ">(", inputExpr, ")"),
- MarshalType.SystemObjectArray =>
- source.Append(VariantUtils, ".ConvertToSystemArrayOfVariant(", inputExpr, ")"),
MarshalType.SystemArrayOfSupportedType =>
source.Append(VariantUtils, ".ConvertToSystemArrayOfSupportedType<",
((IArrayTypeSymbol)typeSymbol).ElementType.FullQualifiedName(), ">(", inputExpr, ")"),
@@ -466,8 +462,8 @@ namespace Godot.SourceGenerators
MarshalType.GenericICollection or MarshalType.GenericIEnumerable =>
source.Append(VariantUtils, ".ConvertToGenericArrayObject<",
((INamedTypeSymbol)typeSymbol).TypeArguments[0].FullQualifiedName(), ">(", inputExpr, ")"),
- MarshalType.SystemObject =>
- source.Append(Marshaling, ".ConvertVariantToManagedObject(", inputExpr, ")"),
+ MarshalType.Variant =>
+ source.Append("global::Godot.Variant.CreateCopyingBorrowed(", inputExpr, ")"),
MarshalType.GodotObjectOrDerived =>
source.Append("(", typeSymbol.FullQualifiedName(),
")", VariantUtils, ".ConvertToGodotObject(", inputExpr, ")"),
@@ -579,8 +575,6 @@ namespace Godot.SourceGenerators
source.Append(VariantUtils, ".CreateFromPackedColorArray(", inputExpr, ")"),
MarshalType.GodotObjectOrDerivedArray =>
source.Append(VariantUtils, ".CreateFromSystemArrayOfGodotObject(", inputExpr, ")"),
- MarshalType.SystemObjectArray =>
- source.Append(VariantUtils, ".CreateFromSystemArrayOfVariant(", inputExpr, ")"),
MarshalType.SystemArrayOfSupportedType =>
source.Append(VariantUtils, ".CreateFromSystemArrayOfSupportedType(", inputExpr, ")"),
MarshalType.GodotGenericDictionary =>
@@ -597,8 +591,8 @@ namespace Godot.SourceGenerators
source.Append(VariantUtils, ".CreateFromSystemGenericICollection(", inputExpr, ")"),
MarshalType.GenericIEnumerable =>
source.Append(VariantUtils, ".CreateFromSystemGenericIEnumerable(", inputExpr, ")"),
- MarshalType.SystemObject =>
- source.Append(Marshaling, ".ConvertManagedObjectToVariant(", inputExpr, ")"),
+ MarshalType.Variant =>
+ source.Append(inputExpr, ".CopyNativeVariant()"),
MarshalType.GodotObjectOrDerived =>
source.Append(VariantUtils, ".CreateFromGodotObject(", inputExpr, ")"),
MarshalType.StringName =>