| Index: pkg/compiler/lib/src/cps_ir/type_propagation.dart
|
| diff --git a/pkg/compiler/lib/src/cps_ir/type_propagation.dart b/pkg/compiler/lib/src/cps_ir/type_propagation.dart
|
| index 7f788189c94067f1bc2290eec4351887202fa743..c732db2c46ac29f33b5b47cfddb24a5afedcd569 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/type_propagation.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/type_propagation.dart
|
| @@ -832,12 +832,13 @@ class TransformingVisitor extends RecursiveVisitor {
|
| if (target.isFinal) return false;
|
| assert(cont.parameters.single.hasNoUses);
|
| cont.parameters.clear();
|
| - SetField set = new SetField(getDartReceiver(node),
|
| - target,
|
| - getDartArgument(node, 0));
|
| - set.body = new InvokeContinuation(cont, <Primitive>[]);
|
| - replaceSubtree(node, set);
|
| - visitSetField(set);
|
| + CpsFragment cps = new CpsFragment(node.sourceInformation);
|
| + cps.letPrim(new SetField(getDartReceiver(node),
|
| + target,
|
| + getDartArgument(node, 0)));
|
| + cps.invokeContinuation(cont);
|
| + replaceSubtree(node, cps.result);
|
| + visit(cps.result);
|
| return true;
|
| }
|
| }
|
| @@ -2008,7 +2009,6 @@ class TypePropagationVisitor implements Visitor {
|
|
|
| void visitSetMutableVariable(SetMutableVariable node) {
|
| setValue(node.variable.definition, getValue(node.value.definition));
|
| - setReachable(node.body);
|
| }
|
|
|
| void visitLiteralList(LiteralList node) {
|
| @@ -2096,9 +2096,7 @@ class TypePropagationVisitor implements Visitor {
|
| }
|
| }
|
|
|
| - void visitSetStatic(SetStatic node) {
|
| - setReachable(node.body);
|
| - }
|
| + void visitSetStatic(SetStatic node) {}
|
|
|
| void visitGetLazyStatic(GetLazyStatic node) {
|
| Continuation cont = node.continuation.definition;
|
| @@ -2126,9 +2124,7 @@ class TypePropagationVisitor implements Visitor {
|
| setValue(node, nonConstant(typeSystem.getFieldType(node.field)));
|
| }
|
|
|
| - void visitSetField(SetField node) {
|
| - setReachable(node.body);
|
| - }
|
| + void visitSetField(SetField node) {}
|
|
|
| void visitCreateBox(CreateBox node) {
|
| setValue(node, nonConstant(typeSystem.nonNullType));
|
|
|