| // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 
 | // for details. All rights reserved. Use of this source code is governed by a | 
 | // BSD-style license that can be found in the LICENSE.md file. | 
 |  | 
 | class A { | 
 |   var a; | 
 |   var b; | 
 |   var c; | 
 |   var d; | 
 |   get e => null; | 
 |   final f; | 
 |   set g(_) {} | 
 |   get h => null; | 
 |   set h(_) {} | 
 |   get i => null; | 
 |  | 
 |   operator [](_) => null; | 
 |   operator []=(a, b) {} | 
 |   operator ~() => 117; | 
 |   operator -() => 117; | 
 |  | 
 |   operator ==(other) => true; | 
 |  | 
 |   void m() {} | 
 |  | 
 |   void n() {} | 
 |   set n(_) {} | 
 | } | 
 |  | 
 | class B extends A { | 
 |   get b => null; | 
 |   set c(x) {} | 
 |   final d; | 
 |   set i(x) {} | 
 | } | 
 |  | 
 | class C extends B { | 
 |   test() { | 
 |     ~super; | 
 |     use(~super); | 
 |     -super; | 
 |     use(-super); | 
 |     +super; | 
 |     use(+super); | 
 |     super == 87; | 
 |     use(super == 87); | 
 |     super != 87; | 
 |     use(super != 87); | 
 |  | 
 |     super.a; | 
 |     use(super.a); | 
 |     super.b; | 
 |     use(super.b); | 
 |     super.c; | 
 |     use(super.c); | 
 |     super.d; | 
 |     use(super.d); | 
 |     super.e; | 
 |     use(super.e); | 
 |     super.f; | 
 |     use(super.f); | 
 |     super.g; | 
 |     use(super.g); | 
 |     super.h; | 
 |     use(super.h); | 
 |     super.i; | 
 |     use(super.i); | 
 |     super[87]; | 
 |     use(super[87]); | 
 |     super.m; | 
 |     use(super.m); | 
 |     super.n; | 
 |     use(super.n); | 
 |  | 
 |     super.a++; | 
 |     use(super.a++); | 
 |     super.b++; | 
 |     use(super.b++); | 
 |     super.c++; | 
 |     use(super.c++); | 
 |     super.d++; | 
 |     use(super.d++); | 
 |     super.e++; | 
 |     use(super.e++); | 
 |     super.f++; | 
 |     use(super.f++); | 
 |     super.g++; | 
 |     use(super.g++); | 
 |     super.h++; | 
 |     use(super.h++); | 
 |     super.i++; | 
 |     use(super.i++); | 
 |     super[87]++; | 
 |     use(super[87]++); | 
 |     super.m++; | 
 |     use(super.m++); | 
 |     super.n++; | 
 |     use(super.n++); | 
 |  | 
 |     ++super.a; | 
 |     use(++super.a); | 
 |     ++super.b; | 
 |     use(++super.b); | 
 |     ++super.c; | 
 |     use(++super.c); | 
 |     ++super.d; | 
 |     use(++super.d); | 
 |     ++super.e; | 
 |     use(++super.e); | 
 |     ++super.f; | 
 |     use(++super.f); | 
 |     ++super.g; | 
 |     use(++super.g); | 
 |     ++super.h; | 
 |     use(++super.h); | 
 |     ++super.i; | 
 |     use(++super.i); | 
 |     ++super[87]; | 
 |     use(++super[87]); | 
 |     ++super.m; | 
 |     use(++super.m); | 
 |     ++super.n; | 
 |     use(++super.n); | 
 |  | 
 |     super.a(); | 
 |     use(super.a()); | 
 |     super.b(); | 
 |     use(super.b()); | 
 |     super.c(); | 
 |     use(super.c()); | 
 |     super.d(); | 
 |     use(super.d()); | 
 |     super.e(); | 
 |     use(super.e()); | 
 |     super.f(); | 
 |     use(super.f()); | 
 |     super.g(); | 
 |     use(super.g()); | 
 |     super.h(); | 
 |     use(super.h()); | 
 |     super.i(); | 
 |     use(super.i()); | 
 |     super[87](); | 
 |     use(super[87]()); | 
 |     super.m(); | 
 |     use(super.m()); | 
 |     super.m(87); | 
 |     use(super.m(87)); | 
 |     super.n(87); | 
 |     use(super.n(87)); | 
 |  | 
 |     super.a = 42; | 
 |     use(super.a = 42); | 
 |     super.b = 42; | 
 |     use(super.b = 42); | 
 |     super.c = 42; | 
 |     use(super.c = 42); | 
 |     super.d = 42; | 
 |     use(super.d = 42); | 
 |     super.e = 42; | 
 |     use(super.e = 42); | 
 |     super.f = 42; | 
 |     use(super.f = 42); | 
 |     super.g = 42; | 
 |     use(super.g = 42); | 
 |     super.h = 42; | 
 |     use(super.h = 42); | 
 |     super.i = 42; | 
 |     use(super.i = 42); | 
 |     super[87] = 42; | 
 |     use(super[87] = 42); | 
 |     super.m = 42; | 
 |     use(super.m = 42); | 
 |     super.n = 42; | 
 |     use(super.n = 42); | 
 |  | 
 |     super.a ??= 42; | 
 |     use(super.a ??= 42); | 
 |     super.b ??= 42; | 
 |     use(super.b ??= 42); | 
 |     super.c ??= 42; | 
 |     use(super.c ??= 42); | 
 |     super.d ??= 42; | 
 |     use(super.d ??= 42); | 
 |     super.e ??= 42; | 
 |     use(super.e ??= 42); | 
 |     super.f ??= 42; | 
 |     use(super.f ??= 42); | 
 |     super.g ??= 42; | 
 |     use(super.g ??= 42); | 
 |     super.h ??= 42; | 
 |     use(super.h ??= 42); | 
 |     super.i ??= 42; | 
 |     use(super.i ??= 42); | 
 |     super[87] ??= 42; | 
 |     use(super[87] ??= 42); | 
 |     super.m ??= 42; | 
 |     use(super.m ??= 42); | 
 |     super.n ??= 42; | 
 |     use(super.n ??= 42); | 
 |  | 
 |     super.a += 42; | 
 |     use(super.a += 42); | 
 |     super.b += 42; | 
 |     use(super.b += 42); | 
 |     super.c += 42; | 
 |     use(super.c += 42); | 
 |     super.d += 42; | 
 |     use(super.d += 42); | 
 |     super.e += 42; | 
 |     use(super.e += 42); | 
 |     super.f += 42; | 
 |     use(super.f += 42); | 
 |     super.g += 42; | 
 |     use(super.g += 42); | 
 |     super.h += 42; | 
 |     use(super.h += 42); | 
 |     super.i += 42; | 
 |     use(super.i += 42); | 
 |     super[87] += 42; | 
 |     use(super[87] += 42); | 
 |     super.m += 42; | 
 |     use(super.m += 42); | 
 |     super.n += 42; | 
 |     use(super.n += 42); | 
 |  | 
 |     super.a -= 42; | 
 |     use(super.a -= 42); | 
 |     super.b -= 42; | 
 |     use(super.b -= 42); | 
 |     super.c -= 42; | 
 |     use(super.c -= 42); | 
 |     super.d -= 42; | 
 |     use(super.d -= 42); | 
 |     super.e -= 42; | 
 |     use(super.e -= 42); | 
 |     super.f -= 42; | 
 |     use(super.f -= 42); | 
 |     super.g -= 42; | 
 |     use(super.g -= 42); | 
 |     super.h -= 42; | 
 |     use(super.h -= 42); | 
 |     super.i -= 42; | 
 |     use(super.i -= 42); | 
 |     super[87] -= 42; | 
 |     use(super[87] -= 42); | 
 |     super.m -= 42; | 
 |     use(super.m -= 42); | 
 |     super.n -= 42; | 
 |     use(super.n -= 42); | 
 |   } | 
 | } | 
 |  | 
 | use(x) { | 
 |   if (x == new DateTime.now().millisecondsSinceEpoch) throw "Shouldn't happen"; | 
 | } | 
 |  | 
 | main() { | 
 |   new C().test(); | 
 | } |