diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs index 908152d72..0a02d94f7 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 = "2018"; + public const string Revision = "2023"; 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 64fb8d2cd..df4ae51bf 100644 --- a/Configuration/Version.defs +++ b/Configuration/Version.defs @@ -1,4 +1,4 @@ -%MINOR%=4 -%REVISION%=2018 %COREVERSION%=2 +%REVISION%=2023 +%MINOR%=4 %MAJOR%=3 diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh index b25c183dc..22834e00d 100644 --- a/ReleaseGenerators/PascalABCNET_version.nsh +++ b/ReleaseGenerators/PascalABCNET_version.nsh @@ -1 +1 @@ -!define VERSION '3.4.2.2018' +!define VERSION '3.4.2.2023' diff --git a/SyntaxTree/tree/TreeHelper.cs b/SyntaxTree/tree/TreeHelper.cs index 33bcd06e4..a7540812a 100644 --- a/SyntaxTree/tree/TreeHelper.cs +++ b/SyntaxTree/tree/TreeHelper.cs @@ -1709,6 +1709,7 @@ namespace PascalABCCompiler.SyntaxTree public partial class expression { + //public object semantic_ex; public expression Plus(expression e) { return new bin_expr(this, e, Operators.Plus); diff --git a/TestSuite/loopn.pas b/TestSuite/loopn.pas new file mode 100644 index 000000000..2de360cfe --- /dev/null +++ b/TestSuite/loopn.pas @@ -0,0 +1,9 @@ +begin + var n := 10; + loop n do + Assert(n=n); + var p: procedure; + p := ()->begin + Assert(n=n); + end; +end. \ No newline at end of file diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index b922441fe..c8effc49e 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -848,7 +848,10 @@ namespace PascalABCCompiler.TreeConverter motivation_keeper.reset(); // Это можно закомментировать - все тесты проходят SSM 2/1/17 //\ssyy expression_node en = ret.visit(expr); - //expr.semantic_ex = en; // SSM 3.1.17 кешируем для последующего обращения + + //if (lambdaProcessingState == LambdaProcessingState.FinishPhase) + // expr.semantic_ex = en; // SSM 3.1.17 кешируем для последующего обращения + if (en == null) AddError(get_location(expr), "EXPRESSION_EXPECTED"); //en.loc=get_location(expr); @@ -20160,6 +20163,7 @@ namespace PascalABCCompiler.TreeConverter AddError(get_location(st), "MISSED_SEMANTIC_CHECK_FOR_SUGARED_NODE_{0}", (st.typ as System.Type)?.Name ?? "Unknown"); } ret.reset(); // обязательно очистить - этот узел в семантику ничего не должен приносить! + ReplaceUsingParent(st, new PascalABCCompiler.SyntaxTree.empty_statement()); } public override void visit(SyntaxTree.semantic_check_sugared_var_def_statement_node st)