diff --git a/TestSuite/lambdas23.pas b/TestSuite/lambdas23.pas new file mode 100644 index 000000000..7263f5a2a --- /dev/null +++ b/TestSuite/lambdas23.pas @@ -0,0 +1,21 @@ +var j := 0; +type + t1 = class + + static property prop1: integer read 1; + + static constructor; + begin + var p := ()-> + begin + j := prop1; + end; + p; + end; + + end; + +begin + var i := t1.prop1; + assert(j = 1); +end. \ No newline at end of file diff --git a/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs b/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs index b3ddc5efb..839426fed 100644 --- a/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs +++ b/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs @@ -275,6 +275,11 @@ namespace TreeConverter.LambdaExpressions.Closure dn = new dot_node(getClassIdent(classField.cont_type), new ident(id.name, id.source_context), id.source_context); } + else if (si.sym_info is common_property_node cpn && cpn.polymorphic_state == polymorphic_state.ps_static) + { + dn = new dot_node(getClassIdent(cpn.common_comprehensive_type), + new ident(id.name, id.source_context), id.source_context); + } else if (si.sym_info is class_constant_definition ccd) { dn = new dot_node(getClassIdent(ccd.comperehensive_type),