fix #1897
This commit is contained in:
parent
4e45e59d4a
commit
75609986e1
|
|
@ -15,7 +15,7 @@ internal static class RevisionClass
|
||||||
public const string Major = "3";
|
public const string Major = "3";
|
||||||
public const string Minor = "4";
|
public const string Minor = "4";
|
||||||
public const string Build = "2";
|
public const string Build = "2";
|
||||||
public const string Revision = "2018";
|
public const string Revision = "2023";
|
||||||
|
|
||||||
public const string MainVersion = Major + "." + Minor;
|
public const string MainVersion = Major + "." + Minor;
|
||||||
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
%MINOR%=4
|
|
||||||
%REVISION%=2018
|
|
||||||
%COREVERSION%=2
|
%COREVERSION%=2
|
||||||
|
%REVISION%=2023
|
||||||
|
%MINOR%=4
|
||||||
%MAJOR%=3
|
%MAJOR%=3
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
!define VERSION '3.4.2.2018'
|
!define VERSION '3.4.2.2023'
|
||||||
|
|
|
||||||
|
|
@ -1709,6 +1709,7 @@ namespace PascalABCCompiler.SyntaxTree
|
||||||
|
|
||||||
public partial class expression
|
public partial class expression
|
||||||
{
|
{
|
||||||
|
//public object semantic_ex;
|
||||||
public expression Plus(expression e)
|
public expression Plus(expression e)
|
||||||
{
|
{
|
||||||
return new bin_expr(this, e, Operators.Plus);
|
return new bin_expr(this, e, Operators.Plus);
|
||||||
|
|
|
||||||
9
TestSuite/loopn.pas
Normal file
9
TestSuite/loopn.pas
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
begin
|
||||||
|
var n := 10;
|
||||||
|
loop n do
|
||||||
|
Assert(n=n);
|
||||||
|
var p: procedure;
|
||||||
|
p := ()->begin
|
||||||
|
Assert(n=n);
|
||||||
|
end;
|
||||||
|
end.
|
||||||
|
|
@ -848,7 +848,10 @@ namespace PascalABCCompiler.TreeConverter
|
||||||
motivation_keeper.reset(); // Это можно закомментировать - все тесты проходят SSM 2/1/17
|
motivation_keeper.reset(); // Это можно закомментировать - все тесты проходят SSM 2/1/17
|
||||||
//\ssyy
|
//\ssyy
|
||||||
expression_node en = ret.visit(expr);
|
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)
|
if (en == null)
|
||||||
AddError(get_location(expr), "EXPRESSION_EXPECTED");
|
AddError(get_location(expr), "EXPRESSION_EXPECTED");
|
||||||
//en.loc=get_location(expr);
|
//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");
|
AddError(get_location(st), "MISSED_SEMANTIC_CHECK_FOR_SUGARED_NODE_{0}", (st.typ as System.Type)?.Name ?? "Unknown");
|
||||||
}
|
}
|
||||||
ret.reset(); // обязательно очистить - этот узел в семантику ничего не должен приносить!
|
ret.reset(); // обязательно очистить - этот узел в семантику ничего не должен приносить!
|
||||||
|
ReplaceUsingParent(st, new PascalABCCompiler.SyntaxTree.empty_statement());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void visit(SyntaxTree.semantic_check_sugared_var_def_statement_node st)
|
public override void visit(SyntaxTree.semantic_check_sugared_var_def_statement_node st)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue