better exception for invalid operand type

This commit is contained in:
z__
2022-02-08 23:26:25 +07:00
parent dd854a159a
commit ad19a7dc9e

View File

@@ -12,6 +12,7 @@ using Mono.Cecil.Cil;
using MonoMod.Utils; using MonoMod.Utils;
using Torch.Managers.PatchManager.Transpile; using Torch.Managers.PatchManager.Transpile;
using Torch.Utils; using Torch.Utils;
using VRage.Game.VisualScripting;
using OpCode = System.Reflection.Emit.OpCode; using OpCode = System.Reflection.Emit.OpCode;
using OpCodes = System.Reflection.Emit.OpCodes; using OpCodes = System.Reflection.Emit.OpCodes;
using OperandType = System.Reflection.Emit.OperandType; using OperandType = System.Reflection.Emit.OperandType;
@@ -284,7 +285,11 @@ namespace Torch.Managers.PatchManager.MSIL
type = type.BaseType; type = type.BaseType;
} }
((MsilOperandInline<T>) Operand).Value = o; if (Operand is not MsilOperandInline<T> operandInline)
throw new InvalidOperationException(
$"Type {typeof(T).FullName} is not valid operand for {Operand?.GetType().Signature()}");
operandInline.Value = o;
return this; return this;
} }