diff --git a/TestSuite/errors/err0239.pas b/TestSuite/errors/err0239.pas new file mode 100644 index 000000000..2775aef42 --- /dev/null +++ b/TestSuite/errors/err0239.pas @@ -0,0 +1,7 @@ +type + I1 = interface + end; + +begin + (I1(System.Math.Sin)); +end. \ No newline at end of file diff --git a/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs b/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs index c7cd4a357..97f374184 100644 --- a/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs +++ b/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs @@ -681,7 +681,7 @@ namespace PascalABCCompiler.TreeConverter return ret; } - if ((type_table.is_derived(from.type, to)) || (type_table.is_derived(to, from.type)) || from.type.IsInterface || to.IsInterface) + if ((type_table.is_derived(from.type, to)) || (type_table.is_derived(to, from.type)) || from.type.IsInterface || to.IsInterface && !(from.type is delegated_methods)) { if (from.type.IsSealed && to.IsInterface && !from.type.ImplementingInterfaces.Contains(to) || from.type.IsInterface && to.IsSealed && !to.ImplementingInterfaces.Contains(from.type))