diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index 1ca5a33d2..21c02b3f7 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 = "4"; public const string Build = "2"; - public const string Revision = "2062"; + public const string Revision = "2064"; 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 1f8e89320..94c9af9b2 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ %COREVERSION%=2 -%REVISION%=2062 +%REVISION%=2064 %MINOR%=4 %MAJOR%=3 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 5490114b5..d1adba2f6 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.4.2.2062' +!define VERSION '3.4.2.2064' diff --git a/TestSuite/lambda_nonstatic_from_static.pas.pas b/TestSuite/lambda_nonstatic_from_static.pas similarity index 90% rename from TestSuite/lambda_nonstatic_from_static.pas.pas rename to TestSuite/lambda_nonstatic_from_static.pas index 7da5d9cda..c94beadfe 100644 --- a/TestSuite/lambda_nonstatic_from_static.pas.pas +++ b/TestSuite/lambda_nonstatic_from_static.pas @@ -1,24 +1,24 @@ -type - t1 = class - - b: byte; - - static procedure p1(b: byte); - begin - - var p: procedure; - p := ()-> - begin - p := ()-> - begin - b := b; - end; - end; - - end; - - end; - -begin - Assert(1=1); +type + t1 = class + + b: byte; + + static procedure p1(b: byte); + begin + + var p: procedure; + p := ()-> + begin + p := ()-> + begin + b := b; + end; + end; + + end; + + end; + +begin + Assert(1=1); end. \ No newline at end of file diff --git a/TreeConverter/NetWrappers/NetHelper.cs b/TreeConverter/NetWrappers/NetHelper.cs index 49338a4a1..383624b77 100644 --- a/TreeConverter/NetWrappers/NetHelper.cs +++ b/TreeConverter/NetWrappers/NetHelper.cs @@ -447,7 +447,7 @@ namespace PascalABCCompiler.NetHelper //if (namespaces[s] == null) ns_ht.Add(s,s); ns_ht[s] = s; namespaces[s] = t; - // SSM 17.05.19 Пробую запретить uses Reflection: https://github.com/pascalabcnet/pascalabcnet/issues/1941 + // SSM 17.05.19 Запретил uses Reflection: https://github.com/pascalabcnet/pascalabcnet/issues/1941 /*if (pos != -1) { string[] sub_ns_arr = s.Split('.'); diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index e4e8bd0a3..1d37bc881 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -5883,8 +5883,10 @@ namespace PascalABCCompiler.TreeConverter var fl = fld.lambda_visit_mode; // запомнили типы параметров лямбды - SSM - object[] realparamstype = new object[fld.formal_parameters.params_list.Count]; // здесь хранятся выведенные типы лямбд или null если типы явно заданы - for (var k = 0; k < fld.formal_parameters.params_list.Count; k++) + var fld_formal_parameters_Count = fld.formal_parameters == null ? 0 : fld.formal_parameters.params_list.Count; + + object[] realparamstype = new object[fld_formal_parameters_Count]; // здесь хранятся выведенные типы лямбд или null если типы явно заданы + for (var k = 0; k < fld_formal_parameters_Count; k++) { var laminftypeK = fld.formal_parameters.params_list[k].vars_type as SyntaxTree.lambda_inferred_type; if (laminftypeK == null) @@ -5939,7 +5941,7 @@ namespace PascalABCCompiler.TreeConverter if (restype != null) restype.real_type = realrestype; // восстанавливаем сохраненные типы параметров лямбды, которые не были заданы явно - for (var k = 0; k < fld.formal_parameters.params_list.Count; k++) + for (var k = 0; k < fld_formal_parameters_Count; k++) { var laminftypeK = fld.formal_parameters.params_list[k].vars_type as SyntaxTree.lambda_inferred_type; if (laminftypeK != null)