This commit is contained in:
Бондарев Иван 2018-03-20 20:02:20 +01:00
parent 680a9b99b4
commit 170e47253d
2 changed files with 32 additions and 2 deletions

View file

@ -0,0 +1,25 @@
type
t1 = class
public class i: integer;
procedure p1;
begin
var i2: integer;
var p: procedure := ()->begin
i += 1;
i2 += 1;
end;
p;
end;
end;
begin
var o := new t1;
o.p1;
assert(t1.i = 1);
end.

View file

@ -392,7 +392,11 @@ namespace TreeConverter.LambdaExpressions.Closure
{ {
if (upperScopeWhereVarsAreCaptured != scope) if (upperScopeWhereVarsAreCaptured != scope)
{ {
var dotnode1 = new dot_node( dot_node dotnode1 = null;
if (ClassField != null && ClassField.IsStatic)
dotnode1 = new dot_node(ClassName, new ident(varName));
else
dotnode1 = new dot_node(
new ident(compiler_string_consts.self_word), new ident(compiler_string_consts.self_word),
new ident( new ident(
_capturedVarsClassDefs[upperScopeWhereVarsAreCaptured.ScopeIndex] _capturedVarsClassDefs[upperScopeWhereVarsAreCaptured.ScopeIndex]
@ -429,7 +433,8 @@ namespace TreeConverter.LambdaExpressions.Closure
} }
else else
{ {
dotnode1 = new dot_node(dotnode1, new ident(varName)); if (!(ClassField != null && ClassField.IsStatic))
dotnode1 = new dot_node(dotnode1, new ident(varName));
} }
} }
else else