This commit is contained in:
Mikhalkovich Stanislav 2019-05-31 20:52:07 +03:00
parent 92b0bf4cc2
commit 1d9a27d08a
6 changed files with 28 additions and 6 deletions

View file

@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3"; public const string Major = "3";
public const string Minor = "5"; public const string Minor = "5";
public const string Build = "0"; public const string Build = "0";
public const string Revision = "2077"; public const string Revision = "2084";
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;

View file

@ -1,4 +1,4 @@
%MINOR%=5
%REVISION%=2077
%COREVERSION%=0 %COREVERSION%=0
%REVISION%=2084
%MINOR%=5
%MAJOR%=3 %MAJOR%=3

View file

@ -1 +1 @@
!define VERSION '3.5.0.2077' !define VERSION '3.5.0.2084'

View file

@ -0,0 +1,20 @@
type
t1 = class
public procedure p0 := exit;
public i: integer := 2;
public procedure p1;
begin
var v := 0;
var p: procedure := ()->begin
v := v;
Assert(i=2);
p0;
end;
p;
end;
end;
begin
t1.Create.p1;
end.

View file

@ -164,7 +164,7 @@ namespace TreeConverter.LambdaExpressions.Closure
si.sym_info.semantic_node_type == semantic_node_type.common_namespace_function_node || si.sym_info.semantic_node_type == semantic_node_type.common_namespace_function_node ||
si.sym_info.semantic_node_type == semantic_node_type.namespace_constant_definition || si.sym_info.semantic_node_type == semantic_node_type.namespace_constant_definition ||
si.sym_info.semantic_node_type == semantic_node_type.compiled_function_node || si.sym_info.semantic_node_type == semantic_node_type.compiled_function_node ||
si.sym_info.semantic_node_type == semantic_node_type.common_method_node || // SSM bug fix #167 //si.sym_info.semantic_node_type == semantic_node_type.common_method_node || // SSM bug fix #167 - SSM 30.05.19 эта строчка не влияет на #167 и я её закомментировал
si.sym_info.semantic_node_type == semantic_node_type.compiled_namespace_node || si.sym_info.semantic_node_type == semantic_node_type.compiled_namespace_node ||
si.sym_info.semantic_node_type == semantic_node_type.compiled_variable_definition || si.sym_info.semantic_node_type == semantic_node_type.compiled_variable_definition ||
si.sym_info.semantic_node_type == semantic_node_type.common_type_node || si.sym_info.semantic_node_type == semantic_node_type.common_type_node ||

View file

@ -3224,7 +3224,8 @@ namespace PascalABCCompiler.TreeConverter
if (id != null) if (id != null)
{ {
mc = new SyntaxTree.method_call(); mc = new SyntaxTree.method_call();
mc.dereferencing_value = id; mc.dereferencing_value = id; // дело в том, что это присваивание перенаправляет Parent на method_call, которого нет в синтаксическом дереве.
id.Parent = _procedure_call; // fix #891 вернули Parent назад
//DarkStar Add //DarkStar Add
//Добавил т.к. нужно для генерации отладочной инфы //Добавил т.к. нужно для генерации отладочной инфы
mc.source_context = id.source_context; mc.source_context = id.source_context;
@ -3236,6 +3237,7 @@ namespace PascalABCCompiler.TreeConverter
{ {
mc = new SyntaxTree.method_call(); mc = new SyntaxTree.method_call();
mc.dereferencing_value = adrv; mc.dereferencing_value = adrv;
adrv.Parent = _procedure_call; // fix #891
//DarkStar Add //DarkStar Add
//Добавил т.к. нужно для генерации отладочной инфы //Добавил т.к. нужно для генерации отладочной инфы
mc.source_context = adrv.source_context; mc.source_context = adrv.source_context;