diff --git a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/intermediatelang/optimizer/TempMerger.java b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/intermediatelang/optimizer/TempMerger.java index f4d982637..ab8ce93ca 100644 --- a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/intermediatelang/optimizer/TempMerger.java +++ b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstscript/intermediatelang/optimizer/TempMerger.java @@ -402,9 +402,13 @@ private boolean isMergable(ImVar left, ImExpr e) { */ private void invalidateVar(ImVar left) { currentValues.remove(left); + if (left.isGlobal()) { + invalidateGlobals(); + } else { + currentValues.removeAll(readBy.lookup(left)); + } } - @Override public String toString() { ArrayList keys = Lists.newArrayList(currentValues.keySet());