diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index dfb547802..646cbed36 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 = "5"; public const string Build = "0"; - public const string Revision = "2075"; + public const string Revision = "2077"; 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 9a7ee5d5a..4a63753c9 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ %MINOR%=5 -%REVISION%=2075 +%REVISION%=2077 %COREVERSION%=0 %MAJOR%=3 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index 6ff45e4cd..ab4e8328d 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.5.0.2075' +!define VERSION '3.5.0.2077' diff --git a/TestSuite/lambda_capture_private_static_and_local.pas b/TestSuite/lambda_capture_private_static_and_local.pas new file mode 100644 index 000000000..f5cbf6556 --- /dev/null +++ b/TestSuite/lambda_capture_private_static_and_local.pas @@ -0,0 +1,15 @@ +type + t1 = class + {public} static a1: byte := 2; + + private procedure p1; + begin + var a2: word := 3; + var pp1: ()->integer := ()->a1+a2; + Assert(pp1=5); + end; + end; + +begin + t1.Create.p1 +end. \ No newline at end of file diff --git a/TestSuite/match_byte_integer.pas b/TestSuite/match_byte_integer.pas new file mode 100644 index 000000000..786c536ce --- /dev/null +++ b/TestSuite/match_byte_integer.pas @@ -0,0 +1,7 @@ +begin + var l: byte; + l := 1; + match l with + 1: Assert(l=1); + end; +end. \ No newline at end of file diff --git a/TreeConverter/LambdaExpressions/Closure/CapturedVariablesSubstitutionClassGenerator.cs b/TreeConverter/LambdaExpressions/Closure/CapturedVariablesSubstitutionClassGenerator.cs index fcb6d9eac..b4ab3c5d5 100644 --- a/TreeConverter/LambdaExpressions/Closure/CapturedVariablesSubstitutionClassGenerator.cs +++ b/TreeConverter/LambdaExpressions/Closure/CapturedVariablesSubstitutionClassGenerator.cs @@ -433,17 +433,17 @@ namespace TreeConverter.LambdaExpressions.Closure Tuple publicProperty; if (classScope.NonPublicMembersNamesMapping.TryGetValue(varName, out publicProperty)) { - dotnode1 = new dot_node(dotnode1, new ident(publicProperty.Item1, sourceCtxt), sourceCtxt); + dotnode1 = new dot_node(dotnode1.left, new ident(publicProperty.Item1, sourceCtxt), sourceCtxt); // SSM #869 добавил .left - была ошибка } else { if (!(ClassField != null && ClassField.IsStatic)) - dotnode1 = new dot_node(dotnode1, new ident(varName, sourceCtxt), sourceCtxt); + dotnode1 = new dot_node(dotnode1, new ident(varName, sourceCtxt), sourceCtxt); // ?? dotnode1.left ?? } } else { - dotnode1 = new dot_node(dotnode1, new ident(varName, sourceCtxt), sourceCtxt); + dotnode1 = new dot_node(dotnode1, new ident(varName, sourceCtxt), sourceCtxt); // ?? dotnode1.left ?? } } _lambdaIdReferences.Add(new LambdaReferencesSubstitutionInfo