From 66d86a1b6c795246e157a199b9b84d1365c76a18 Mon Sep 17 00:00:00 2001 From: aNNiMON Date: Mon, 2 Oct 2023 18:59:16 +0300 Subject: [PATCH] Fix dead code elimination optimization removes assignment on shadowing module constants --- .../ownlang/parser/optimization/DeadCodeElimination.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/DeadCodeElimination.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/DeadCodeElimination.java index d5ba7cc..188e89a 100644 --- a/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/DeadCodeElimination.java +++ b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/DeadCodeElimination.java @@ -30,7 +30,7 @@ public class DeadCodeElimination extends OptimizationVisitor variableInfos = VariablesGrabber.getInfo(node); + final Map variableInfos = VariablesGrabber.getInfo(node, true); return node.accept(this, variableInfos); } @@ -99,7 +99,7 @@ public class DeadCodeElimination extends OptimizationVisitor t) { - if (!isVariable((Node)s.target)) return super.visit(s, t); + if (!isVariable(s.target)) return super.visit(s, t); final String variableName = ((VariableExpression) s.target).name; if (!t.containsKey(variableName)) return super.visit(s, t);