From de4b9fd6a432aa18ea39652cb4662c194df09675 Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Thu, 18 Jun 2020 00:27:04 +0300 Subject: [PATCH] fix #2261 --- TestSuite/dValues.pas | 6 ++++++ .../TreeConversion/convertion_data_and_alghoritms.cs | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 TestSuite/dValues.pas 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)