diff --git a/TestSuite/dValues.pas b/TestSuite/dValues.pas new file mode 100644 index 000000000..9180d0bfd --- /dev/null +++ b/TestSuite/dValues.pas @@ -0,0 +1,6 @@ +// #2256 +begin + var d := new Dictionary; + d.Values.GetEnumerator(); + Assert(1=1); +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 5c8eea56f..494efc6e6 100644 --- a/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs +++ b/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs @@ -661,7 +661,9 @@ namespace PascalABCCompiler.TreeConverter return convert_type(en, (to as delegated_methods).empty_param_method.ret_type, loc); } en.location = loc; - AddError(new CanNotConvertTypes(en, en.type, to, loc)); + if (en.type is delegated_methods dm && dm.proper_methods[0].parameters.Count == 0 && dm.proper_methods[0].ret_type != null) + AddError(new CanNotConvertTypes(en, dm.proper_methods[0].ret_type, to, loc)); // SSM 18/06/20 #2261 + else AddError(new CanNotConvertTypes(en, en.type, to, loc)); } #if (DEBUG)