| Index: pkg/compiler/lib/src/ssa/types_propagation.dart
|
| diff --git a/pkg/compiler/lib/src/ssa/types_propagation.dart b/pkg/compiler/lib/src/ssa/types_propagation.dart
|
| index 7db5f0521277a5914cb8028552fd1d8f315427c1..49aa6f99cf3d19f255376d32cdcc2a7465b6ea71 100644
|
| --- a/pkg/compiler/lib/src/ssa/types_propagation.dart
|
| +++ b/pkg/compiler/lib/src/ssa/types_propagation.dart
|
| @@ -397,12 +397,7 @@ class SsaTypePropagator extends HBaseVisitor implements OptimizationPhase {
|
| addDependentInstructionsToWorkList(next);
|
| }
|
| } else {
|
| - DominatedUses uses;
|
| - bool hasCandidates() {
|
| - uses =
|
| - DominatedUses.of(receiver, instruction, excludeDominator: true);
|
| - return uses.isNotEmpty;
|
| - }
|
| + bool hasCandidates() => receiver.dominatedUsers(instruction).length > 1;
|
|
|
| if ((receiver.usedBy.length <= _MAX_QUICK_USERS)
|
| ? (hasCandidates() && computeNewType() != receiverType)
|
| @@ -412,7 +407,7 @@ class SsaTypePropagator extends HBaseVisitor implements OptimizationPhase {
|
| HTypeKnown converted =
|
| new HTypeKnown.witnessed(newType, receiver, instruction);
|
| instruction.block.addBefore(instruction.next, converted);
|
| - uses.replaceWith(converted);
|
| + receiver.replaceAllUsersDominatedBy(converted.next, converted);
|
| addDependentInstructionsToWorkList(converted);
|
| }
|
| }
|
|
|