Index: sdk/lib/_internal/compiler/implementation/inferrer/inferrer_visitor.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/inferrer/inferrer_visitor.dart b/sdk/lib/_internal/compiler/implementation/inferrer/inferrer_visitor.dart |
index 12cbf777e445c1e2e341e1b0e70fbe74d2cf1720..b0af493d6525139bcf874db6a8970176e43c2f1f 100644 |
--- a/sdk/lib/_internal/compiler/implementation/inferrer/inferrer_visitor.dart |
+++ b/sdk/lib/_internal/compiler/implementation/inferrer/inferrer_visitor.dart |
@@ -858,10 +858,10 @@ abstract class InferrerVisitor |
} else if ("||" == op.source) { |
conditionIsSimple = false; |
List<Send> tests = <Send>[]; |
- handleCondition(node.receiver, tests); |
+ bool isSimple = handleCondition(node.receiver, tests); |
LocalsHandler<T> saved = locals; |
locals = new LocalsHandler<T>.from(locals, node); |
- updateIsChecks(tests, usePositive: false); |
+ if (isSimple) updateIsChecks(tests, usePositive: false); |
bool oldAccumulateIsChecks = accumulateIsChecks; |
accumulateIsChecks = false; |
isChecks = null; |