You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of the process of reloading assemblies involves deserializing delgates - presumably as a way to recover editor state. When that's happening, if a 0-parameter method has overloads, attempts to uniquely acquire that method with System.Type.GetMethod will throw System.Reflection.AmbiguousMatchException: Ambiguous match found.
modules\mono\glue\runtime_interop.cpp:1324 - System.Reflection.AmbiguousMatchException: Ambiguous match found.
at System.RuntimeType.GetMethodImplCommon(String name, Int32 genericParameterCount, BindingFlags bindingAttr, Binder binder, CallingConventions callConv, Type[] types, ParameterModifier[] modifiers)
at System.Type.GetMethod(String name, BindingFlags bindingAttr)
at Godot.DelegateUtils.TryDeserializeMethodInfo(BinaryReader reader, MethodInfo& methodInfo) in E:\src\godot\modules\mono\glue\GodotSharp\GodotSharp\Core\DelegateUtils.cs:line 520
at Godot.DelegateUtils.TryDeserializeSingleDelegate(Byte[] buffer, Delegate& delegate) in E:\src\godot\modules\mono\glue\GodotSharp\GodotSharp\Core\DelegateUtils.cs:line 425
at Godot.DelegateUtils.TryDeserializeDelegate(Array serializedData, Delegate& delegate) in E:\src\godot\modules\mono\glue\GodotSharp\GodotSharp\Core\DelegateUtils.cs:line 355
at Godot.DelegateUtils.TryDeserializeDelegateWithGCHandle(godot_array* nSerializedData, IntPtr* delegateGCHandle) in E:\src\godot\modules\mono\glue\GodotSharp\GodotSharp\Core\DelegateUtils.cs:line 321
Steps to reproduce
In the minimal repro project:
Compile C# code.
Ensure the GetMethodRepro plugin is enabled.
Restart Godot and open the project.
Make any change to the non-plugin code Anything.cs.
Godot version
v4.0.2.stable.mono.official [7a0977c]
System information
Windows 10 - Godot v4.0.2.stable
Issue description
Part of the process of reloading assemblies involves deserializing delgates - presumably as a way to recover editor state. When that's happening, if a 0-parameter method has overloads, attempts to uniquely acquire that method with
System.Type.GetMethod
will throwSystem.Reflection.AmbiguousMatchException: Ambiguous match found.
Steps to reproduce
In the minimal repro project:
GetMethodRepro
plugin is enabled.Anything.cs
.Minimal reproduction project
GetMethodBug.zip
The text was updated successfully, but these errors were encountered: