From 5e89c96a0fb153d6f5338555427fa21781f27921 Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Mon, 29 Jun 2020 00:25:52 +0300 Subject: [PATCH] fix #2079 --- Configuration/GlobalAssemblyInfo.cs | 2 +- Configuration/Version.defs | 4 +-- Localization/DefaultLang.resources | Bin 94854 -> 94829 bytes Release/pabcversion.txt | 2 +- ReleaseGenerators/PascalABCNET_version.nsh | 2 +- TestSuite/SeqSeq.pas | 7 +++++ .../convertion_data_and_alghoritms.cs | 25 ++++++++++++++++-- 7 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 TestSuite/SeqSeq.pas diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index d2473c81b..61c107be9 100644 --- a/Configuration/GlobalAssemblyInfo.cs +++ b/Configuration/GlobalAssemblyInfo.cs @@ -15,7 +15,7 @@ internal static class RevisionClass public const string Major = "3"; public const string Minor = "6"; public const string Build = "3"; - public const string Revision = "2538"; + public const string Revision = "2541"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/Configuration/Version.defs b/Configuration/Version.defs index cefed2d8b..06e124b4a 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%COREVERSION%=3 -%REVISION%=2538 %MINOR%=6 +%REVISION%=2541 +%COREVERSION%=3 %MAJOR%=3 diff --git a/Localization/DefaultLang.resources b/Localization/DefaultLang.resources index d7eb905f02dfce7c8b2a6189ac14abaed658f907..c59ccfc44814094625c8d8610b3757b891cf326f 100644 GIT binary patch delta 76 zcmV-S0JHywAnoNK?C$2}@*v^+^86s@;Pv9* i_vP*GAnX6^;pE^g;`{L6=H>0^(Seq&); + var q := Seq&(Seq&,Seq&); + Assert(q.Count=2); + Assert(q.First.Count=0); +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 4ae8106e2..06ff6937c 100644 --- a/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs +++ b/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs @@ -404,7 +404,7 @@ namespace PascalABCCompiler.TreeConverter common_type_node converted_type, common_function_node top_function, bool allow_procedure, List syntax_nodes_parameters = null) { function_node fn = select_function(exprs, si, loc, syntax_nodes_parameters); - + //allow_procedure = true; if ((!allow_procedure) && (fn.return_value_type == null)) { @@ -1658,7 +1658,28 @@ namespace PascalABCCompiler.TreeConverter private void convert_function_call_expressions(function_node fn,expressions_list exprs, possible_type_convertions_list ptcal) { - for(int i=0;i 0 && fn.parameters[fn.parameters.Count - 1].is_params; + if (lastIsParams && fn.parameters[fn.parameters.Count - 1].type.element_type.IsDelegate) + needToConvertParamsToFunctionCall = false; // параметры params - преобразовывать ли в вызовы + + + for (int i = 0; i < exprs.Count; i++) + { + // надо отдельно расшифровывать params и в них тоже не преобразовывать если там делегаты + // Если функция возвращает функцию, то это к сожалению не будет работать + if (i <= fn.parameters.Count - 1 && fn.parameters[i].type.IsDelegate || lastIsParams && i >= fn.parameters.Count - 1 && !needToConvertParamsToFunctionCall) + { + // ничего не делать + } + else + { + var ex = exprs[i]; + syntax_tree_visitor.try_convert_typed_expression_to_function_call(ref ex); + exprs[i] = ex; + } + } + for (int i=0;i= fn.parameters.Count - 1)) {