From 6226fa7d419d59e4054a43b041a26831b7be0ccd Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Wed, 10 Jun 2020 18:33:26 +0300 Subject: [PATCH] fix #1185 --- Configuration/GlobalAssemblyInfo.cs | 2 +- Configuration/Version.defs | 4 ++-- Release/pabcversion.txt | 2 +- ReleaseGenerators/PascalABCNET_version.nsh | 2 +- TestSuite/params20.pas | 10 ++++++++++ TestSuite/params21.pas | 10 ++++++++++ .../TreeConversion/convertion_data_and_alghoritms.cs | 5 ++++- 7 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 TestSuite/params20.pas create mode 100644 TestSuite/params21.pas diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index 6e6e41279..e29c0dbef 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 = "2496"; + public const string Revision = "2497"; 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 d24aa1d9d..cfb085d2d 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%COREVERSION%=3 -%REVISION%=2496 %MINOR%=6 +%REVISION%=2497 +%COREVERSION%=3 %MAJOR%=3 diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt index f17946ada..52182a0c3 100644 --- a/Release/pabcversion.txt +++ b/Release/pabcversion.txt @@ -1 +1 @@ -3.6.3.2496 +3.6.3.2497 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 1267f6ee5..310f40537 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.6.3.2496' +!define VERSION '3.6.3.2497' diff --git a/TestSuite/params20.pas b/TestSuite/params20.pas new file mode 100644 index 000000000..126eee123 --- /dev/null +++ b/TestSuite/params20.pas @@ -0,0 +1,10 @@ +procedure p1(params a: array of ()->array of byte); +begin + Assert(1=1) +end; + +function GetBArr := new byte[0]; + +begin + p1(GetBArr); +end. \ No newline at end of file diff --git a/TestSuite/params21.pas b/TestSuite/params21.pas new file mode 100644 index 000000000..39926ad77 --- /dev/null +++ b/TestSuite/params21.pas @@ -0,0 +1,10 @@ +procedure p1(params a: array of byte); +begin + Assert(1=1) +end; + +function GetBArr := new byte[0]; + +begin + p1(GetBArr); +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 8d57fec28..5c8eea56f 100644 --- a/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs +++ b/TreeConverter/TreeConversion/convertion_data_and_alghoritms.cs @@ -917,7 +917,10 @@ namespace PascalABCCompiler.TreeConverter parameter pr=formalparams[formalparams.Count - 1]; if (pr.is_params && //это для возможности вызова сразу с массивом[], типа просто не обращаем внимаение на params - !(factparams.Count == formalparams.Count && factparams[factparams.Count - 1].type == formalparams[formalparams.Count - 1].type)) + !(factparams.Count == formalparams.Count && (factparams[factparams.Count - 1].type == formalparams[formalparams.Count - 1].type || + (factparams[factparams.Count - 1].type is delegated_methods dm) && (dm.proper_methods[0].ret_type == formalparams[formalparams.Count - 1].type)) + ) + ) { //TODO: Добавить проверку на правильность. aii = (array_internal_interface)