From 602e60f72e127d829259290bfac8f51c0add3501 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Thu, 10 Jul 2014 18:14:15 +0400 Subject: [PATCH] Merge conditions refinement --- .../optimization/boxing/BoxingInterpreter.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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()); }