diff --git a/TestSuite/lambda_static_meth_def_outof_class.pas b/TestSuite/lambda_static_meth_def_outof_class.pas new file mode 100644 index 000000000..fb747bc5a --- /dev/null +++ b/TestSuite/lambda_static_meth_def_outof_class.pas @@ -0,0 +1,14 @@ +type A = class + static function X := 1; + static procedure p; +end; + + static procedure A.p; + begin + var s := X; + ArrGen(10,i->i); + end; + +begin + +end. \ No newline at end of file diff --git a/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs b/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs index 0982684f8..976abb896 100644 --- a/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs +++ b/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs @@ -286,7 +286,7 @@ namespace TreeConverter.LambdaExpressions.Closure else id1 = new ident(cname.name, cname.source_context); dot_node dn = new dot_node(id1, new ident(id.name, id.source_context), id.source_context); id.Parent.ReplaceDescendantUnsafe(id, dn); - ProcessNode(id.Parent); + ProcessNode(dn); return; } }