Index: lib/compiler/implementation/ssa/bailout.dart |
diff --git a/lib/compiler/implementation/ssa/bailout.dart b/lib/compiler/implementation/ssa/bailout.dart |
index c1c814d51bcd81ed725605a005a61ac0da8f4e2d..9828599d4922f6b635f44c2bf4ac31e9429c3b45 100644 |
--- a/lib/compiler/implementation/ssa/bailout.dart |
+++ b/lib/compiler/implementation/ssa/bailout.dart |
@@ -276,7 +276,9 @@ class SsaTypeGuardBuilder extends HBaseVisitor implements OptimizationPhase { |
} |
bool shouldCaptureEnvironment(HInstruction instruction) { |
- return instruction.type.isKnown() && !instruction.hasExpectedType(); |
+ HType propagatedType = instruction.propagatedType; |
+ return propagatedType.isUseful() |
+ && propagatedType != instruction.computeTypeFromInputTypes(); |
} |
void insertCapturedEnvironments() { |