Browse Source

Fix: A runtime error occurs when LuaValue is used as an argument.

AnnulusGames 11 months ago
parent
commit
6cbc71fea0
1 changed files with 8 additions and 1 deletions
  1. 8 1
      src/Lua.SourceGenerator/LuaObjectGenerator.Emit.cs

+ 8 - 1
src/Lua.SourceGenerator/LuaObjectGenerator.Emit.cs

@@ -361,7 +361,14 @@ partial class LuaObjectGenerator
 
 
             foreach (var parameter in methodMetadata.Symbol.Parameters)
             foreach (var parameter in methodMetadata.Symbol.Parameters)
             {
             {
-                builder.AppendLine($"var arg{index} = context.GetArgument<{parameter.Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}>({index});");
+                if (SymbolEqualityComparer.Default.Equals(parameter.Type, references.LuaValue))
+                {
+                    builder.AppendLine($"var arg{index} = context.GetArgument({index});");
+                }
+                else
+                {
+                    builder.AppendLine($"var arg{index} = context.GetArgument<{parameter.Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)}>({index});");
+                }
                 index++;
                 index++;
             }
             }