| Index: pkg/compiler/lib/src/cps_ir/scalar_replacement.dart
|
| diff --git a/pkg/compiler/lib/src/cps_ir/scalar_replacement.dart b/pkg/compiler/lib/src/cps_ir/scalar_replacement.dart
|
| index b220847358fc5c4b8bb4ff19531aeb72b37db05c..5eb8156ea719dc188ec5b52dc3d842549e302698 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/scalar_replacement.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/scalar_replacement.dart
|
| @@ -77,7 +77,7 @@ class ScalarReplacementVisitor extends TrampolineRecursiveVisitor {
|
| for (Reference ref = allocation.firstRef; ref != null; ref = ref.next) {
|
| Node use = ref.parent;
|
| if (use is GetField) continue;
|
| - if (use is SetField && use.object == ref) continue;
|
| + if (use is SetField && use.objectRef == ref) continue;
|
| return;
|
| }
|
|
|
| @@ -102,7 +102,7 @@ class ScalarReplacementVisitor extends TrampolineRecursiveVisitor {
|
| int i = 0;
|
| allocation.classElement.forEachInstanceField(
|
| (ClassElement enclosingClass, FieldElement field) {
|
| - Primitive argument = allocation.arguments[i++].definition;
|
| + Primitive argument = allocation.argument(i++);
|
| fieldInitialValues[field] = argument;
|
| },
|
| includeSuperAndInjectedMembers: true);
|
| @@ -127,7 +127,7 @@ class ScalarReplacementVisitor extends TrampolineRecursiveVisitor {
|
| insertionPoint = let..insertBelow(insertionPoint);
|
| }
|
| LetMutable let = new LetMutable(variable, initialValue);
|
| - let.value.parent = let;
|
| + let.valueRef.parent = let;
|
| insertionPoint = let..insertBelow(insertionPoint);
|
| }
|
|
|
| @@ -141,7 +141,7 @@ class ScalarReplacementVisitor extends TrampolineRecursiveVisitor {
|
| if (variable != null) {
|
| GetMutable getter = new GetMutable(variable);
|
| getter.type = getField.type;
|
| - getter.variable.parent = getter;
|
| + getter.variableRef.parent = getter;
|
| getField.replaceUsesWith(getter);
|
| replacePrimitive(getField, getter);
|
| deletePrimitive(getField);
|
| @@ -150,14 +150,14 @@ class ScalarReplacementVisitor extends TrampolineRecursiveVisitor {
|
| getField.replaceUsesWith(value);
|
| deleteLetPrimOf(getField);
|
| }
|
| - } else if (use is SetField && use.object == ref) {
|
| + } else if (use is SetField && use.objectRef == ref) {
|
| SetField setField = use;
|
| MutableVariable variable = cells[setField.field];
|
| - Primitive value = setField.value.definition;
|
| + Primitive value = setField.value;
|
| variable.type = variable.type.union(value.type, classWorld);
|
| SetMutable setter = new SetMutable(variable, value);
|
| - setter.variable.parent = setter;
|
| - setter.value.parent = setter;
|
| + setter.variableRef.parent = setter;
|
| + setter.valueRef.parent = setter;
|
| setField.replaceUsesWith(setter);
|
| replacePrimitive(setField, setter);
|
| deletePrimitive(setField);
|
|
|