From f309dfc7aa23d23face8874296f28a40704f059d Mon Sep 17 00:00:00 2001 From: Ivan Bondarev Date: Sun, 10 Dec 2023 12:05:52 +0100 Subject: [PATCH] #2980 --- TestSuite/property12.pas | 14 ++++++++++++++ .../TreeConversion/syntax_tree_visitor.cs | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 TestSuite/property12.pas diff --git a/TestSuite/property12.pas b/TestSuite/property12.pas new file mode 100644 index 000000000..fbcbed62c --- /dev/null +++ b/TestSuite/property12.pas @@ -0,0 +1,14 @@ +type + t1 = class + static function f1 := 1; + static procedure f1(x: integer) := exit; + property p1: integer read f1 write f1; + + end; + +begin + var a := new t1; + assert(a.p1 = 1); + a.p1 := 2; + +end. \ No newline at end of file diff --git a/TreeConverter/TreeConversion/syntax_tree_visitor.cs b/TreeConverter/TreeConversion/syntax_tree_visitor.cs index 863460586..88d9fd45a 100644 --- a/TreeConverter/TreeConversion/syntax_tree_visitor.cs +++ b/TreeConverter/TreeConversion/syntax_tree_visitor.cs @@ -4754,7 +4754,7 @@ namespace PascalABCCompiler.TreeConverter cmn.parameters.AddElement(new_cp); } expression_node meth_call; - if (cpn.polymorphic_state == SemanticTree.polymorphic_state.ps_common || cpn.polymorphic_state == SemanticTree.polymorphic_state.ps_virtual) + if (accessor.polymorphic_state == SemanticTree.polymorphic_state.ps_common || accessor.polymorphic_state == SemanticTree.polymorphic_state.ps_virtual) { meth_call = new common_method_call(accessor, new this_node(cpn.common_comprehensive_type, loc), loc); foreach (common_parameter cp in cmn.parameters) @@ -4795,7 +4795,7 @@ namespace PascalABCCompiler.TreeConverter cmn.parameters.AddElement(new_cp); } expression_node meth_call; - if (cpn.polymorphic_state == SemanticTree.polymorphic_state.ps_common || cpn.polymorphic_state == SemanticTree.polymorphic_state.ps_virtual) + if (accessor.polymorphic_state == SemanticTree.polymorphic_state.ps_common || accessor.polymorphic_state == SemanticTree.polymorphic_state.ps_virtual) { meth_call = new common_method_call(accessor, new this_node(cpn.common_comprehensive_type, loc), loc); foreach (common_parameter cp in cmn.parameters)