| Index: pkg/front_end/test/fasta/super_rasta_copy.dart.direct.expect
 | 
| diff --git a/pkg/front_end/test/fasta/super_rasta_copy.dart.direct.expect b/pkg/front_end/test/fasta/super_rasta_copy.dart.direct.expect
 | 
| deleted file mode 100644
 | 
| index 7722a0ec7533fecfe6ee60ca697221c97e12cb86..0000000000000000000000000000000000000000
 | 
| --- a/pkg/front_end/test/fasta/super_rasta_copy.dart.direct.expect
 | 
| +++ /dev/null
 | 
| @@ -1,248 +0,0 @@
 | 
| -library;
 | 
| -import self as self;
 | 
| -import "dart:core" as core;
 | 
| -
 | 
| -class A extends core::Object {
 | 
| -  field dynamic a = null;
 | 
| -  field dynamic b = null;
 | 
| -  field dynamic c = null;
 | 
| -  field dynamic d = null;
 | 
| -  final field dynamic f = null;
 | 
| -  constructor •() → void
 | 
| -    : super core::Object::•()
 | 
| -    ;
 | 
| -  get e() → dynamic
 | 
| -    return null;
 | 
| -  set g(dynamic _) → dynamic {}
 | 
| -  get h() → dynamic
 | 
| -    return null;
 | 
| -  set h(dynamic _) → dynamic {}
 | 
| -  get i() → dynamic
 | 
| -    return null;
 | 
| -  operator [](dynamic _) → dynamic
 | 
| -    return null;
 | 
| -  operator []=(dynamic a, dynamic b) → dynamic {}
 | 
| -  operator ~() → dynamic
 | 
| -    return 117;
 | 
| -  operator unary-() → dynamic
 | 
| -    return 117;
 | 
| -  operator ==(dynamic other) → dynamic
 | 
| -    return true;
 | 
| -  method m() → void {}
 | 
| -}
 | 
| -class B extends self::A {
 | 
| -  final field dynamic d = null;
 | 
| -  constructor •() → void
 | 
| -    : super self::A::•()
 | 
| -    ;
 | 
| -  get b() → dynamic
 | 
| -    return null;
 | 
| -  set c(dynamic x) → dynamic {}
 | 
| -  set i(dynamic x) → dynamic {}
 | 
| -}
 | 
| -class C extends self::B {
 | 
| -  constructor •() → void
 | 
| -    : super self::B::•()
 | 
| -    ;
 | 
| -  method test() → dynamic {
 | 
| -    this.{=self::A::~}();
 | 
| -    self::use(this.{=self::A::~}());
 | 
| -    this.{=self::A::unary-}();
 | 
| -    self::use(this.{=self::A::unary-}());
 | 
| -    this.{=self::A::==}(87);
 | 
| -    self::use(this.{=self::A::==}(87));
 | 
| -    !this.{=self::A::==}(87);
 | 
| -    self::use(!this.{=self::A::==}(87));
 | 
| -    this.{=self::A::a};
 | 
| -    self::use(this.{=self::A::a});
 | 
| -    this.{=self::B::b};
 | 
| -    self::use(this.{=self::B::b});
 | 
| -    this.{=self::A::c};
 | 
| -    self::use(this.{=self::A::c});
 | 
| -    this.{=self::B::d};
 | 
| -    self::use(this.{=self::B::d});
 | 
| -    this.{=self::A::e};
 | 
| -    self::use(this.{=self::A::e});
 | 
| -    this.{=self::A::f};
 | 
| -    self::use(this.{=self::A::f});
 | 
| -    throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null));
 | 
| -    this.{=self::A::h};
 | 
| -    self::use(this.{=self::A::h});
 | 
| -    this.{=self::A::i};
 | 
| -    self::use(this.{=self::A::i});
 | 
| -    this.{=self::A::[]}(87);
 | 
| -    self::use(this.{=self::A::[]}(87));
 | 
| -    this.{=self::A::m};
 | 
| -    self::use(this.{=self::A::m});
 | 
| -    this.{=self::A::a} = this.{=self::A::a}.+(1);
 | 
| -    self::use(let final dynamic #t1 = this.{=self::A::a} in let final dynamic #t2 = this.{=self::A::a} = #t1.+(1) in #t1);
 | 
| -    this.{=self::A::b} = this.{=self::B::b}.+(1);
 | 
| -    self::use(let final dynamic #t3 = this.{=self::B::b} in let final dynamic #t4 = this.{=self::A::b} = #t3.+(1) in #t3);
 | 
| -    this.{=self::B::c} = this.{=self::A::c}.+(1);
 | 
| -    self::use(let final dynamic #t5 = this.{=self::A::c} in let final dynamic #t6 = this.{=self::B::c} = #t5.+(1) in #t5);
 | 
| -    this.{=self::A::d} = this.{=self::B::d}.+(1);
 | 
| -    self::use(let final dynamic #t7 = this.{=self::B::d} in let final dynamic #t8 = this.{=self::A::d} = #t7.+(1) in #t7);
 | 
| -    throw new core::NoSuchMethodError::•(null, #e, <dynamic>[this.{=self::A::e}.+(1)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(let final dynamic #t9 = this.{=self::A::e} in let final dynamic #t10 = throw new core::NoSuchMethodError::•(null, #e, <dynamic>[#t9.+(1)], <dynamic, dynamic>{}, null) in #t9);
 | 
| -    throw new core::NoSuchMethodError::•(null, #f, <dynamic>[this.{=self::A::f}.+(1)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(let final dynamic #t11 = this.{=self::A::f} in let final dynamic #t12 = throw new core::NoSuchMethodError::•(null, #f, <dynamic>[#t11.+(1)], <dynamic, dynamic>{}, null) in #t11);
 | 
| -    this.{=self::A::g} = (throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null)).+(1);
 | 
| -    self::use(let final dynamic #t13 = throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null) in let final dynamic #t14 = this.{=self::A::g} = #t13.+(1) in #t13);
 | 
| -    this.{=self::A::h} = this.{=self::A::h}.+(1);
 | 
| -    self::use(let final dynamic #t15 = this.{=self::A::h} in let final dynamic #t16 = this.{=self::A::h} = #t15.+(1) in #t15);
 | 
| -    this.{=self::B::i} = this.{=self::A::i}.+(1);
 | 
| -    self::use(let final dynamic #t17 = this.{=self::A::i} in let final dynamic #t18 = this.{=self::B::i} = #t17.+(1) in #t17);
 | 
| -    let final dynamic #t19 = 87 in this.{=self::A::[]=}(#t19, this.{=self::A::[]}(#t19).+(1));
 | 
| -    self::use(let final dynamic #t20 = 87 in let final dynamic #t21 = this.{=self::A::[]}(#t20) in let final dynamic #t22 = this.{=self::A::[]=}(#t20, #t21.+(1)) in #t21);
 | 
| -    throw new core::NoSuchMethodError::•(null, #m, <dynamic>[this.{=self::A::m}.+(1)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(let final dynamic #t23 = this.{=self::A::m} in let final dynamic #t24 = throw new core::NoSuchMethodError::•(null, #m, <dynamic>[#t23.+(1)], <dynamic, dynamic>{}, null) in #t23);
 | 
| -    this.{=self::A::a} = this.{=self::A::a}.+(1);
 | 
| -    self::use(this.{=self::A::a} = this.{=self::A::a}.+(1));
 | 
| -    this.{=self::A::b} = this.{=self::B::b}.+(1);
 | 
| -    self::use(this.{=self::A::b} = this.{=self::B::b}.+(1));
 | 
| -    this.{=self::B::c} = this.{=self::A::c}.+(1);
 | 
| -    self::use(this.{=self::B::c} = this.{=self::A::c}.+(1));
 | 
| -    this.{=self::A::d} = this.{=self::B::d}.+(1);
 | 
| -    self::use(this.{=self::A::d} = this.{=self::B::d}.+(1));
 | 
| -    throw new core::NoSuchMethodError::•(null, #e, <dynamic>[this.{=self::A::e}.+(1)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #e, <dynamic>[this.{=self::A::e}.+(1)], <dynamic, dynamic>{}, null));
 | 
| -    throw new core::NoSuchMethodError::•(null, #f, <dynamic>[this.{=self::A::f}.+(1)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #f, <dynamic>[this.{=self::A::f}.+(1)], <dynamic, dynamic>{}, null));
 | 
| -    this.{=self::A::g} = (throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null)).+(1);
 | 
| -    self::use(this.{=self::A::g} = (throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null)).+(1));
 | 
| -    this.{=self::A::h} = this.{=self::A::h}.+(1);
 | 
| -    self::use(this.{=self::A::h} = this.{=self::A::h}.+(1));
 | 
| -    this.{=self::B::i} = this.{=self::A::i}.+(1);
 | 
| -    self::use(this.{=self::B::i} = this.{=self::A::i}.+(1));
 | 
| -    let final dynamic #t25 = 87 in let final dynamic #t26 = this.{=self::A::[]}(#t25).+(1) in let final dynamic #t27 = this.{=self::A::[]=}(#t25, #t26) in #t26;
 | 
| -    self::use(let final dynamic #t28 = 87 in let final dynamic #t29 = this.{=self::A::[]}(#t28).+(1) in let final dynamic #t30 = this.{=self::A::[]=}(#t28, #t29) in #t29);
 | 
| -    throw new core::NoSuchMethodError::•(null, #m, <dynamic>[this.{=self::A::m}.+(1)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #m, <dynamic>[this.{=self::A::m}.+(1)], <dynamic, dynamic>{}, null));
 | 
| -    this.{=self::A::a}.call();
 | 
| -    self::use(this.{=self::A::a}.call());
 | 
| -    this.{=self::B::b}.call();
 | 
| -    self::use(this.{=self::B::b}.call());
 | 
| -    this.{=self::A::c}.call();
 | 
| -    self::use(this.{=self::A::c}.call());
 | 
| -    this.{=self::B::d}.call();
 | 
| -    self::use(this.{=self::B::d}.call());
 | 
| -    this.{=self::A::e}.call();
 | 
| -    self::use(this.{=self::A::e}.call());
 | 
| -    this.{=self::A::f}.call();
 | 
| -    self::use(this.{=self::A::f}.call());
 | 
| -    throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null));
 | 
| -    this.{=self::A::h}.call();
 | 
| -    self::use(this.{=self::A::h}.call());
 | 
| -    this.{=self::A::i}.call();
 | 
| -    self::use(this.{=self::A::i}.call());
 | 
| -    this.{=self::A::[]}(87).call();
 | 
| -    self::use(this.{=self::A::[]}(87).call());
 | 
| -    this.{=self::A::m}();
 | 
| -    self::use(this.{=self::A::m}());
 | 
| -    this.{=core::Object::noSuchMethod}(new core::_InvocationMirror::•("m", core::List::from<dynamic>(<dynamic>[2, 2], growable: false), core::List::from<dynamic>(<dynamic>[this, 87], growable: false), true));
 | 
| -    self::use(this.{=core::Object::noSuchMethod}(new core::_InvocationMirror::•("m", core::List::from<dynamic>(<dynamic>[2, 2], growable: false), core::List::from<dynamic>(<dynamic>[this, 87], growable: false), true)));
 | 
| -    this.{=self::A::a} = 42;
 | 
| -    self::use(this.{=self::A::a} = 42);
 | 
| -    this.{=self::A::b} = 42;
 | 
| -    self::use(this.{=self::A::b} = 42);
 | 
| -    this.{=self::B::c} = 42;
 | 
| -    self::use(this.{=self::B::c} = 42);
 | 
| -    this.{=self::A::d} = 42;
 | 
| -    self::use(this.{=self::A::d} = 42);
 | 
| -    throw new core::NoSuchMethodError::•(null, #e, <dynamic>[42], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #e, <dynamic>[42], <dynamic, dynamic>{}, null));
 | 
| -    throw new core::NoSuchMethodError::•(null, #f, <dynamic>[42], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #f, <dynamic>[42], <dynamic, dynamic>{}, null));
 | 
| -    this.{=self::A::g} = 42;
 | 
| -    self::use(this.{=self::A::g} = 42);
 | 
| -    this.{=self::A::h} = 42;
 | 
| -    self::use(this.{=self::A::h} = 42);
 | 
| -    this.{=self::B::i} = 42;
 | 
| -    self::use(this.{=self::B::i} = 42);
 | 
| -    this.{=self::A::[]=}(87, 42);
 | 
| -    self::use(let final dynamic #t31 = 87 in let final dynamic #t32 = 42 in let final dynamic #t33 = this.{=self::A::[]=}(#t31, #t32) in #t32);
 | 
| -    throw new core::NoSuchMethodError::•(null, #m, <dynamic>[42], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #m, <dynamic>[42], <dynamic, dynamic>{}, null));
 | 
| -    this.{=self::A::a}.==(null) ? this.{=self::A::a} = 42 : null;
 | 
| -    self::use(let final dynamic #t34 = this.{=self::A::a} in #t34.==(null) ? this.{=self::A::a} = 42 : #t34);
 | 
| -    this.{=self::B::b}.==(null) ? this.{=self::A::b} = 42 : null;
 | 
| -    self::use(let final dynamic #t35 = this.{=self::B::b} in #t35.==(null) ? this.{=self::A::b} = 42 : #t35);
 | 
| -    this.{=self::A::c}.==(null) ? this.{=self::B::c} = 42 : null;
 | 
| -    self::use(let final dynamic #t36 = this.{=self::A::c} in #t36.==(null) ? this.{=self::B::c} = 42 : #t36);
 | 
| -    this.{=self::B::d}.==(null) ? this.{=self::A::d} = 42 : null;
 | 
| -    self::use(let final dynamic #t37 = this.{=self::B::d} in #t37.==(null) ? this.{=self::A::d} = 42 : #t37);
 | 
| -    this.{=self::A::e}.==(null) ? throw new core::NoSuchMethodError::•(null, #e, <dynamic>[42], <dynamic, dynamic>{}, null) : null;
 | 
| -    self::use(let final dynamic #t38 = this.{=self::A::e} in #t38.==(null) ? throw new core::NoSuchMethodError::•(null, #e, <dynamic>[42], <dynamic, dynamic>{}, null) : #t38);
 | 
| -    this.{=self::A::f}.==(null) ? throw new core::NoSuchMethodError::•(null, #f, <dynamic>[42], <dynamic, dynamic>{}, null) : null;
 | 
| -    self::use(let final dynamic #t39 = this.{=self::A::f} in #t39.==(null) ? throw new core::NoSuchMethodError::•(null, #f, <dynamic>[42], <dynamic, dynamic>{}, null) : #t39);
 | 
| -    (throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null)).==(null) ? this.{=self::A::g} = 42 : null;
 | 
| -    self::use(let final dynamic #t40 = throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null) in #t40.==(null) ? this.{=self::A::g} = 42 : #t40);
 | 
| -    this.{=self::A::h}.==(null) ? this.{=self::A::h} = 42 : null;
 | 
| -    self::use(let final dynamic #t41 = this.{=self::A::h} in #t41.==(null) ? this.{=self::A::h} = 42 : #t41);
 | 
| -    this.{=self::A::i}.==(null) ? this.{=self::B::i} = 42 : null;
 | 
| -    self::use(let final dynamic #t42 = this.{=self::A::i} in #t42.==(null) ? this.{=self::B::i} = 42 : #t42);
 | 
| -    let final dynamic #t43 = 87 in this.{=self::A::[]}(#t43).==(null) ? let final dynamic #t44 = 42 in let final dynamic #t45 = this.{=self::A::[]=}(#t43, #t44) in #t44 : null;
 | 
| -    self::use(let final dynamic #t46 = 87 in let final dynamic #t47 = this.{=self::A::[]}(#t46) in #t47.==(null) ? let final dynamic #t48 = 42 in let final dynamic #t49 = this.{=self::A::[]=}(#t46, #t48) in #t48 : #t47);
 | 
| -    this.{=self::A::m}.==(null) ? throw new core::NoSuchMethodError::•(null, #m, <dynamic>[42], <dynamic, dynamic>{}, null) : null;
 | 
| -    self::use(let final dynamic #t50 = this.{=self::A::m} in #t50.==(null) ? throw new core::NoSuchMethodError::•(null, #m, <dynamic>[42], <dynamic, dynamic>{}, null) : #t50);
 | 
| -    this.{=self::A::a} = this.{=self::A::a}.+(42);
 | 
| -    self::use(this.{=self::A::a} = this.{=self::A::a}.+(42));
 | 
| -    this.{=self::A::b} = this.{=self::B::b}.+(42);
 | 
| -    self::use(this.{=self::A::b} = this.{=self::B::b}.+(42));
 | 
| -    this.{=self::B::c} = this.{=self::A::c}.+(42);
 | 
| -    self::use(this.{=self::B::c} = this.{=self::A::c}.+(42));
 | 
| -    this.{=self::A::d} = this.{=self::B::d}.+(42);
 | 
| -    self::use(this.{=self::A::d} = this.{=self::B::d}.+(42));
 | 
| -    throw new core::NoSuchMethodError::•(null, #e, <dynamic>[this.{=self::A::e}.+(42)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #e, <dynamic>[this.{=self::A::e}.+(42)], <dynamic, dynamic>{}, null));
 | 
| -    throw new core::NoSuchMethodError::•(null, #f, <dynamic>[this.{=self::A::f}.+(42)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #f, <dynamic>[this.{=self::A::f}.+(42)], <dynamic, dynamic>{}, null));
 | 
| -    this.{=self::A::g} = (throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null)).+(42);
 | 
| -    self::use(this.{=self::A::g} = (throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null)).+(42));
 | 
| -    this.{=self::A::h} = this.{=self::A::h}.+(42);
 | 
| -    self::use(this.{=self::A::h} = this.{=self::A::h}.+(42));
 | 
| -    this.{=self::B::i} = this.{=self::A::i}.+(42);
 | 
| -    self::use(this.{=self::B::i} = this.{=self::A::i}.+(42));
 | 
| -    let final dynamic #t51 = 87 in this.{=self::A::[]=}(#t51, this.{=self::A::[]}(#t51).+(42));
 | 
| -    self::use(let final dynamic #t52 = 87 in let final dynamic #t53 = this.{=self::A::[]}(#t52).+(42) in let final dynamic #t54 = this.{=self::A::[]=}(#t52, #t53) in #t53);
 | 
| -    throw new core::NoSuchMethodError::•(null, #m, <dynamic>[this.{=self::A::m}.+(42)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #m, <dynamic>[this.{=self::A::m}.+(42)], <dynamic, dynamic>{}, null));
 | 
| -    this.{=self::A::a} = this.{=self::A::a}.-(42);
 | 
| -    self::use(this.{=self::A::a} = this.{=self::A::a}.-(42));
 | 
| -    this.{=self::A::b} = this.{=self::B::b}.-(42);
 | 
| -    self::use(this.{=self::A::b} = this.{=self::B::b}.-(42));
 | 
| -    this.{=self::B::c} = this.{=self::A::c}.-(42);
 | 
| -    self::use(this.{=self::B::c} = this.{=self::A::c}.-(42));
 | 
| -    this.{=self::A::d} = this.{=self::B::d}.-(42);
 | 
| -    self::use(this.{=self::A::d} = this.{=self::B::d}.-(42));
 | 
| -    throw new core::NoSuchMethodError::•(null, #e, <dynamic>[this.{=self::A::e}.-(42)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #e, <dynamic>[this.{=self::A::e}.-(42)], <dynamic, dynamic>{}, null));
 | 
| -    throw new core::NoSuchMethodError::•(null, #f, <dynamic>[this.{=self::A::f}.-(42)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #f, <dynamic>[this.{=self::A::f}.-(42)], <dynamic, dynamic>{}, null));
 | 
| -    this.{=self::A::g} = (throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null)).-(42);
 | 
| -    self::use(this.{=self::A::g} = (throw new core::NoSuchMethodError::•(null, #g, <dynamic>[], <dynamic, dynamic>{}, null)).-(42));
 | 
| -    this.{=self::A::h} = this.{=self::A::h}.-(42);
 | 
| -    self::use(this.{=self::A::h} = this.{=self::A::h}.-(42));
 | 
| -    this.{=self::B::i} = this.{=self::A::i}.-(42);
 | 
| -    self::use(this.{=self::B::i} = this.{=self::A::i}.-(42));
 | 
| -    let final dynamic #t55 = 87 in this.{=self::A::[]=}(#t55, this.{=self::A::[]}(#t55).-(42));
 | 
| -    self::use(let final dynamic #t56 = 87 in let final dynamic #t57 = this.{=self::A::[]}(#t56).-(42) in let final dynamic #t58 = this.{=self::A::[]=}(#t56, #t57) in #t57);
 | 
| -    throw new core::NoSuchMethodError::•(null, #m, <dynamic>[this.{=self::A::m}.-(42)], <dynamic, dynamic>{}, null);
 | 
| -    self::use(throw new core::NoSuchMethodError::•(null, #m, <dynamic>[this.{=self::A::m}.-(42)], <dynamic, dynamic>{}, null));
 | 
| -  }
 | 
| -}
 | 
| -static method use(dynamic x) → dynamic {
 | 
| -  if(x.==(new core::DateTime::now().millisecondsSinceEpoch))
 | 
| -    throw "Shouldn't happen";
 | 
| -}
 | 
| -static method main() → dynamic {
 | 
| -  try {
 | 
| -    new self::C::•().test();
 | 
| -  }
 | 
| -  on core::NoSuchMethodError catch(no-exception-var) {
 | 
| -    return;
 | 
| -  }
 | 
| -  throw "Test failed";
 | 
| -}
 | 
| 
 |