| Index: pkg/compiler/lib/src/cps_ir/update_refinements.dart
 | 
| diff --git a/pkg/compiler/lib/src/cps_ir/update_refinements.dart b/pkg/compiler/lib/src/cps_ir/update_refinements.dart
 | 
| index 313f2cb2d830b4ccaa9b1b9666ec46c586cbe860..09f5d7a06d8b7e5cec7db08c31bb993eac57fef6 100644
 | 
| --- a/pkg/compiler/lib/src/cps_ir/update_refinements.dart
 | 
| +++ b/pkg/compiler/lib/src/cps_ir/update_refinements.dart
 | 
| @@ -44,7 +44,9 @@ class UpdateRefinements extends TrampolineRecursiveVisitor implements Pass {
 | 
|          node.type = typeSystem.receiverTypeFor(node.selector, value.type);
 | 
|        } else {
 | 
|          // Check is no longer needed.
 | 
| -        node..replaceUsesWith(value)..destroy();
 | 
| +        node
 | 
| +          ..replaceUsesWith(value)
 | 
| +          ..destroy();
 | 
|          LetPrim letPrim = node.parent;
 | 
|          letPrim.remove();
 | 
|          return;
 | 
| @@ -62,8 +64,8 @@ class UpdateRefinements extends TrampolineRecursiveVisitor implements Pass {
 | 
|    visitRefinement(Refinement node) {
 | 
|      if (refine(node.value)) {
 | 
|        // Update the type if the input has changed.
 | 
| -      node.type = typeSystem.intersection(node.value.definition.type,
 | 
| -          node.refineType);
 | 
| +      node.type =
 | 
| +          typeSystem.intersection(node.value.definition.type, node.refineType);
 | 
|      }
 | 
|      Primitive value = node.effectiveDefinition;
 | 
|      Primitive old = refinementFor[value];
 | 
| @@ -75,8 +77,7 @@ class UpdateRefinements extends TrampolineRecursiveVisitor implements Pass {
 | 
|  
 | 
|    visitBoundsCheck(BoundsCheck node) {
 | 
|      super.visitBoundsCheck(node);
 | 
| -    if (node.hasIntegerCheck &&
 | 
| -        typeSystem.isDefinitelyInt(node.index.type)) {
 | 
| +    if (node.hasIntegerCheck && typeSystem.isDefinitelyInt(node.index.type)) {
 | 
|        node.checks &= ~BoundsCheck.INTEGER;
 | 
|      }
 | 
|    }
 | 
| 
 |