Skip to content

Commit 66d86a1

Browse files
committed
Fix dead code elimination optimization removes assignment on shadowing module constants
1 parent 1abcffd commit 66d86a1

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/DeadCodeElimination.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class DeadCodeElimination extends OptimizationVisitor<Map<String, Variabl
3030

3131
@Override
3232
public Node optimize(Node node) {
33-
final Map<String, VariableInfo> variableInfos = VariablesGrabber.getInfo(node);
33+
final Map<String, VariableInfo> variableInfos = VariablesGrabber.getInfo(node, true);
3434
return node.accept(this, variableInfos);
3535
}
3636

@@ -99,7 +99,7 @@ public Node visit(WhileStatement s, Map<String, VariableInfo> t) {
9999

100100
@Override
101101
public Node visit(AssignmentExpression s, Map<String, VariableInfo> t) {
102-
if (!isVariable((Node)s.target)) return super.visit(s, t);
102+
if (!isVariable(s.target)) return super.visit(s, t);
103103

104104
final String variableName = ((VariableExpression) s.target).name;
105105
if (!t.containsKey(variableName)) return super.visit(s, t);

0 commit comments

Comments
 (0)