diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/optimization/boxing/BoxingInterpreter.java b/compiler/backend/src/org/jetbrains/jet/codegen/optimization/boxing/BoxingInterpreter.java index 8ede7fcda57..32b01ebc60c 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/optimization/boxing/BoxingInterpreter.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/optimization/boxing/BoxingInterpreter.java @@ -211,12 +211,20 @@ public class BoxingInterpreter extends OptimizationBasicInterpreter { return v; } - if (v instanceof BoxedBasicValue && w != BasicValue.UNINITIALIZED_VALUE) { + if (v instanceof BoxedBasicValue && w == BasicValue.UNINITIALIZED_VALUE) { + return v; + } + + if (w instanceof BoxedBasicValue && v == BasicValue.UNINITIALIZED_VALUE) { + return w; + } + + if (v instanceof BoxedBasicValue) { onMergeFail((BoxedBasicValue) v); v = new BasicValue(v.getType()); } - if (w instanceof BoxedBasicValue && v != BasicValue.UNINITIALIZED_VALUE) { + if (w instanceof BoxedBasicValue) { onMergeFail((BoxedBasicValue) w); w = new BasicValue(w.getType()); }