This commit is contained in:
miks1965 2018-11-12 06:44:51 +03:00
parent 6d5a5ee7e8
commit 518adb227b
5 changed files with 22 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 = "4"; public const string Minor = "4";
public const string Build = "2"; public const string Build = "2";
public const string Revision = "1864"; public const string Revision = "1865";
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%=4
%REVISION%=1864
%COREVERSION%=2 %COREVERSION%=2
%REVISION%=1865
%MINOR%=4
%MAJOR%=3 %MAJOR%=3

View file

@ -1 +1 @@
!define VERSION '3.4.2.1864' !define VERSION '3.4.2.1865'

View file

@ -56,8 +56,8 @@ namespace PascalABCCompiler.SyntaxTree
public void ReplaceStatementUsingParent(statement from, IEnumerable<statement> to, Desc d = Desc.DirectDescendants) public void ReplaceStatementUsingParent(statement from, IEnumerable<statement> to, Desc d = Desc.DirectDescendants)
{ {
var fp = from.Parent; // SSM 02.10.18 - запомним, т.к. from.Parent может быть одним из x.Parent var fp = from.Parent; // SSM 02.10.18 - запомним, т.к. from.Parent может быть одним из x.Parent
foreach (var x in to) //foreach (var x in to) // Это и так делается по обоим веткам!
x.Parent = fp; // x.Parent = fp;
var sl = fp as statement_list; var sl = fp as statement_list;
if (sl != null) if (sl != null)
{ {
@ -69,6 +69,7 @@ namespace PascalABCCompiler.SyntaxTree
l.AddMany(to); l.AddMany(to);
l.source_context = from.source_context; l.source_context = from.source_context;
fp.ReplaceDescendant(from, l, d); fp.ReplaceDescendant(from, l, d);
l.Parent = fp; // на всякий случай
} }
} }
} }

View file

@ -0,0 +1,15 @@
begin
foreach var a1 in Arr&<object> do
foreach var a2 in Arr&<object>.Select(o->o as object) do
begin
var p: procedure := ()->
begin
var o: object;
var f := o is byte(var b);
end;
end;
Assert(1=1);
end.