mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 00:34:20 +03:00
Fix dead code elimination optimization removes assignment on shadowing module constants
This commit is contained in:
parent
1abcffda5d
commit
66d86a1b6c
@ -30,7 +30,7 @@ public class DeadCodeElimination extends OptimizationVisitor<Map<String, Variabl
|
||||
|
||||
@Override
|
||||
public Node optimize(Node node) {
|
||||
final Map<String, VariableInfo> variableInfos = VariablesGrabber.getInfo(node);
|
||||
final Map<String, VariableInfo> variableInfos = VariablesGrabber.getInfo(node, true);
|
||||
return node.accept(this, variableInfos);
|
||||
}
|
||||
|
||||
@ -99,7 +99,7 @@ public class DeadCodeElimination extends OptimizationVisitor<Map<String, Variabl
|
||||
|
||||
@Override
|
||||
public Node visit(AssignmentExpression s, Map<String, VariableInfo> 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);
|
||||
|
Loading…
Reference in New Issue
Block a user