From 70c2755ea11d55684d5e25b8f4bf732a3ea8c200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D0=BD=D0=B4=D0=B0=D1=80=D0=B5=D0=B2=20=D0=98?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD?= Date: Sun, 16 Aug 2020 14:05:32 +0200 Subject: [PATCH] fix #2286 --- Optimizer/Optimizer.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Optimizer/Optimizer.cs b/Optimizer/Optimizer.cs index ad63d1ec7..b2e918c4c 100644 --- a/Optimizer/Optimizer.cs +++ b/Optimizer/Optimizer.cs @@ -1213,6 +1213,20 @@ namespace PascalABCCompiler case semantic_node_type.deref_node: VisitDerefNode(((dereference_node)p)); break; case semantic_node_type.simple_array_indexing: VisitSimpleArrayIndexing((simple_array_indexing)p); break; } + if (en.parameters[1] is local_block_variable_reference && (en.parameters[1] as local_block_variable_reference).var.name.StartsWith("$Ren")) + { + switch (p.semantic_node_type) + { + case semantic_node_type.local_variable_reference: IncreaseNumUseVar((local_variable_reference)p); break; + case semantic_node_type.local_block_variable_reference: IncreaseNumUseVar((local_block_variable_reference)p); break; + case semantic_node_type.namespace_variable_reference: IncreaseNumUseVar((namespace_variable_reference)p); break; + case semantic_node_type.class_field_reference: VisitExpression((p as class_field_reference).obj); IncreaseNumUseField((class_field_reference)p); break; + case semantic_node_type.static_class_field_reference: IncreaseNumUseField((static_class_field_reference)p); break; + case semantic_node_type.common_parameter_reference: IncreaseNumUseParam((common_parameter_reference)p); break; + case semantic_node_type.deref_node: VisitDerefNode(((dereference_node)p)); break; + case semantic_node_type.simple_array_indexing: VisitSimpleArrayIndexing((simple_array_indexing)p); break; + } + } } private void CheckAssign(expression_node p)