diff --git a/Source/VSProj/Src/Tools/CodeTranslator.cs b/Source/VSProj/Src/Tools/CodeTranslator.cs index 561056b..2d50d9e 100644 --- a/Source/VSProj/Src/Tools/CodeTranslator.cs +++ b/Source/VSProj/Src/Tools/CodeTranslator.cs @@ -1137,6 +1137,15 @@ unsafe MethodIdInfo getMethodId(MethodReference callee, MethodDefinition caller, }; } + if (method.IsSpecialName && (method.IsAddOn || method.IsRemoveOn || method.IsGetter || method.IsSetter) && !isNewMethod(method) && !isNewClass(method.DeclaringType) && isCompilerGenerated(method)) + { + return new MethodIdInfo() + { + Id = addExternMethod(callee, caller), + Type = CallType.Extern + }; + } + if (method.Parameters.Any(p => p.ParameterType.IsPointer) || method.ReturnType.IsPointer) { Console.WriteLine("Warning: unsafe method, " + method + " in " + method.DeclaringType);