library;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/null_shorting.dart:40:27: Error: Property 'field' cannot be accessed on 'Class?' because it is potentially null.
//  - 'Class' is from 'pkg/front_end/testcases/nnbd/null_shorting.dart'.
// Try accessing using ?. instead.
//   throws(() => (c?.field).field);
//                           ^
//
import self as self;
import "dart:core" as core;

class Class extends core::Object {
  field self::Class? field = null;
  synthetic constructor •() → self::Class
    : super core::Object::•()
    ;
  method method() → self::Class
    return this.{self::Class::property};
  operator [](self::Class? key) → self::Class?
    return this.{self::Class::field};
  operator []=(self::Class? key, self::Class? value) → void {
    this.{self::Class::field} = value;
  }
  operator +(core::int value) → self::Class?
    return this.{self::Class::field};
  operator unary-() → self::Class?
    return this.{self::Class::field};
  get property() → self::Class
    return this;
}
static method main() → dynamic {
  self::propertyAccess(null);
  self::indexAccess(null);
  self::operatorAccess(null);
  self::ifNull(null);
}
static method propertyAccess(self::Class? c) → void {
  let final self::Class? #t1 = c in #t1.{core::Object::==}(null) ?{self::Class?} null : #t1{self::Class}.{self::Class::field};
  let final self::Class? #t2 = c in #t2.{core::Object::==}(null) ?{self::Class} null : #t2{self::Class}.{self::Class::field} = new self::Class::•();
  c = let final self::Class? #t3 = c in #t3.{core::Object::==}(null) ?{self::Class} null : #t3{self::Class}.{self::Class::field} = new self::Class::•();
  let final self::Class #t4 = c{self::Class} in #t4.{core::Object::==}(null) ?{self::Class} null : #t4.{self::Class::method}();
  let final self::Class #t5 = c{self::Class} in #t5.{core::Object::==}(null) ?{self::Class?} null : #t5.{self::Class::property}.{self::Class::field};
  let final self::Class #t6 = c{self::Class} in #t6.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t7 = #t6.{self::Class::field} in #t7.{core::Object::==}(null) ?{self::Class?} null : #t7{self::Class}.{self::Class::field};
  let final self::Class #t8 = c{self::Class} in #t8.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t9 = #t8.{self::Class::property}.{self::Class::field} in #t9.{core::Object::==}(null) ?{self::Class?} null : #t9{self::Class}.{self::Class::field};
  let final self::Class #t10 = c{self::Class} in #t10.{core::Object::==}(null) ?{self::Class} null : #t10.{self::Class::property}.{self::Class::field} = new self::Class::•();
  let final self::Class #t11 = c{self::Class} in #t11.{core::Object::==}(null) ?{self::Class} null : let final self::Class? #t12 = #t11.{self::Class::field} in #t12.{core::Object::==}(null) ?{self::Class} null : #t12{self::Class}.{self::Class::field} = new self::Class::•();
  let final self::Class #t13 = c{self::Class} in #t13.{core::Object::==}(null) ?{self::Class} null : let final self::Class? #t14 = #t13.{self::Class::property}.{self::Class::field} in #t14.{core::Object::==}(null) ?{self::Class} null : #t14{self::Class}.{self::Class::field} = new self::Class::•();
  self::throws(() → self::Class? => let final<BottomType> #t15 = invalid-expression "pkg/front_end/testcases/nnbd/null_shorting.dart:40:27: Error: Property 'field' cannot be accessed on 'Class?' because it is potentially null.
 - 'Class' is from 'pkg/front_end/testcases/nnbd/null_shorting.dart'.
Try accessing using ?. instead.
  throws(() => (c?.field).field);
                          ^" in (let final self::Class? #t16 = c in #t16.{core::Object::==}(null) ?{self::Class?} null : #t16{self::Class}.{self::Class::field}).{self::Class::field});
  self::throws(() → self::Class? => (let final self::Class? #t17 = c in #t17.{core::Object::==}(null) ?{self::Class} null : #t17{self::Class}.{self::Class::field} = new self::Class::•()).{self::Class::field});
  self::throws(() → self::Class? => (let final self::Class? #t18 = c in #t18.{core::Object::==}(null) ?{self::Class} null : #t18{self::Class}.{self::Class::method}()).{self::Class::field});
  c = let final self::Class #t19 = c{self::Class} in #t19.{core::Object::==}(null) ?{self::Class} null : #t19.{self::Class::property}.{self::Class::field} = new self::Class::•();
  c = let final self::Class #t20 = c{self::Class} in #t20.{core::Object::==}(null) ?{self::Class} null : let final self::Class? #t21 = #t20.{self::Class::field} in #t21.{core::Object::==}(null) ?{self::Class} null : #t21{self::Class}.{self::Class::field} = new self::Class::•();
  c = let final self::Class #t22 = c{self::Class} in #t22.{core::Object::==}(null) ?{self::Class} null : let final self::Class? #t23 = #t22.{self::Class::property}.{self::Class::field} in #t23.{core::Object::==}(null) ?{self::Class} null : #t23{self::Class}.{self::Class::field} = new self::Class::•();
  let final self::Class #t24 = c{self::Class} in #t24.{core::Object::==}(null) ?{self::Class} null : #t24.{self::Class::field}.{self::Class::method}();
  let final self::Class #t25 = c{self::Class} in #t25.{core::Object::==}(null) ?{self::Class?} null : #t25.{self::Class::field} = new self::Class::•().{self::Class::field};
  c = let final self::Class #t26 = c{self::Class} in #t26.{core::Object::==}(null) ?{self::Class?} null : #t26.{self::Class::field} = new self::Class::•().{self::Class::field};
  let final self::Class? #t27 = c in #t27.{core::Object::==}(null) ?{self::Class} null : #t27{self::Class}.{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•();
  c = let final self::Class? #t28 = c in #t28.{core::Object::==}(null) ?{self::Class} null : #t28{self::Class}.{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•();
  let final self::Class #t29 = c{self::Class} in #t29.{core::Object::==}(null) ?{self::Class} null : #t29.{self::Class::field} = new self::Class::•().{self::Class::method}();
  c = let final self::Class #t30 = c{self::Class} in #t30.{core::Object::==}(null) ?{self::Class} null : #t30.{self::Class::field} = new self::Class::•().{self::Class::method}();
  let final self::Class #t31 = c{self::Class} in #t31.{core::Object::==}(null) ?{self::Class?} null : #t31.{self::Class::method}().{self::Class::field};
  let final self::Class #t32 = c{self::Class} in #t32.{core::Object::==}(null) ?{self::Class} null : #t32.{self::Class::method}().{self::Class::field} = new self::Class::•();
  let final self::Class #t33 = c{self::Class} in #t33.{core::Object::==}(null) ?{self::Class} null : #t33.{self::Class::method}().{self::Class::method}();
  let final self::Class #t34 = c{self::Class} in #t34.{core::Object::==}(null) ?{self::Class?} null : #t34.{self::Class::property}.{self::Class::property}.{self::Class::field};
  let final self::Class #t35 = c{self::Class} in #t35.{core::Object::==}(null) ?{self::Class} null : #t35.{self::Class::property}.{self::Class::property}.{self::Class::field} = new self::Class::•();
  c = let final self::Class #t36 = c{self::Class} in #t36.{core::Object::==}(null) ?{self::Class} null : #t36.{self::Class::property}.{self::Class::property}.{self::Class::field} = new self::Class::•();
  let final self::Class #t37 = c{self::Class} in #t37.{core::Object::==}(null) ?{self::Class} null : #t37.{self::Class::property}.{self::Class::field}.{self::Class::method}();
  let final self::Class #t38 = c{self::Class} in #t38.{core::Object::==}(null) ?{self::Class?} null : #t38.{self::Class::field} = new self::Class::•().{self::Class::property}.{self::Class::field};
  c = let final self::Class #t39 = c{self::Class} in #t39.{core::Object::==}(null) ?{self::Class?} null : #t39.{self::Class::field} = new self::Class::•().{self::Class::property}.{self::Class::field};
  let final self::Class? #t40 = c in #t40.{core::Object::==}(null) ?{self::Class} null : #t40{self::Class}.{self::Class::field} = new self::Class::•().{self::Class::property}.{self::Class::field} = new self::Class::•();
  c = let final self::Class? #t41 = c in #t41.{core::Object::==}(null) ?{self::Class} null : #t41{self::Class}.{self::Class::field} = new self::Class::•().{self::Class::property}.{self::Class::field} = new self::Class::•();
  let final self::Class #t42 = c{self::Class} in #t42.{core::Object::==}(null) ?{self::Class} null : #t42.{self::Class::field} = new self::Class::•().{self::Class::property}.{self::Class::method}();
  c = let final self::Class #t43 = c{self::Class} in #t43.{core::Object::==}(null) ?{self::Class} null : #t43.{self::Class::field} = new self::Class::•().{self::Class::property}.{self::Class::method}();
  let final self::Class #t44 = c{self::Class} in #t44.{core::Object::==}(null) ?{self::Class?} null : #t44.{self::Class::method}().{self::Class::property}.{self::Class::field};
  let final self::Class #t45 = c{self::Class} in #t45.{core::Object::==}(null) ?{self::Class} null : #t45.{self::Class::method}().{self::Class::property}.{self::Class::field} = new self::Class::•();
  let final self::Class #t46 = c{self::Class} in #t46.{core::Object::==}(null) ?{self::Class} null : #t46.{self::Class::method}().{self::Class::property}.{self::Class::method}();
  let final self::Class #t47 = c{self::Class} in #t47.{core::Object::==}(null) ?{self::Class?} null : #t47.{self::Class::property}.{self::Class::field} = new self::Class::•().{self::Class::field};
  c = let final self::Class #t48 = c{self::Class} in #t48.{core::Object::==}(null) ?{self::Class?} null : #t48.{self::Class::property}.{self::Class::field} = new self::Class::•().{self::Class::field};
  let final self::Class? #t49 = c in #t49.{core::Object::==}(null) ?{self::Class} null : #t49{self::Class}.{self::Class::property}.{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•();
  c = let final self::Class? #t50 = c in #t50.{core::Object::==}(null) ?{self::Class} null : #t50{self::Class}.{self::Class::property}.{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•();
  let final self::Class #t51 = c{self::Class} in #t51.{core::Object::==}(null) ?{self::Class} null : #t51.{self::Class::property}.{self::Class::field} = new self::Class::•().{self::Class::method}();
  c = let final self::Class #t52 = c{self::Class} in #t52.{core::Object::==}(null) ?{self::Class} null : #t52.{self::Class::property}.{self::Class::field} = new self::Class::•().{self::Class::method}();
  let final self::Class #t53 = c{self::Class} in #t53.{core::Object::==}(null) ?{self::Class?} null : #t53.{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•().{self::Class::field};
  c = let final self::Class #t54 = c{self::Class} in #t54.{core::Object::==}(null) ?{self::Class?} null : #t54.{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•().{self::Class::field};
  let final self::Class? #t55 = c in #t55.{core::Object::==}(null) ?{self::Class} null : #t55{self::Class}.{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•();
  c = let final self::Class? #t56 = c in #t56.{core::Object::==}(null) ?{self::Class} null : #t56{self::Class}.{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•();
  let final self::Class #t57 = c{self::Class} in #t57.{core::Object::==}(null) ?{self::Class} null : #t57.{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•().{self::Class::method}();
  c = let final self::Class #t58 = c{self::Class} in #t58.{core::Object::==}(null) ?{self::Class} null : #t58.{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•().{self::Class::method}();
  let final self::Class #t59 = c{self::Class} in #t59.{core::Object::==}(null) ?{self::Class?} null : #t59.{self::Class::method}().{self::Class::field} = new self::Class::•().{self::Class::field};
  c = let final self::Class #t60 = c{self::Class} in #t60.{core::Object::==}(null) ?{self::Class?} null : #t60.{self::Class::method}().{self::Class::field} = new self::Class::•().{self::Class::field};
  let final self::Class? #t61 = c in #t61.{core::Object::==}(null) ?{self::Class} null : #t61{self::Class}.{self::Class::method}().{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•();
  c = let final self::Class? #t62 = c in #t62.{core::Object::==}(null) ?{self::Class} null : #t62{self::Class}.{self::Class::method}().{self::Class::field} = new self::Class::•().{self::Class::field} = new self::Class::•();
  let final self::Class #t63 = c{self::Class} in #t63.{core::Object::==}(null) ?{self::Class} null : #t63.{self::Class::method}().{self::Class::field} = new self::Class::•().{self::Class::method}();
  c = let final self::Class #t64 = c{self::Class} in #t64.{core::Object::==}(null) ?{self::Class} null : #t64.{self::Class::method}().{self::Class::field} = new self::Class::•().{self::Class::method}();
  let final self::Class #t65 = c{self::Class} in #t65.{core::Object::==}(null) ?{self::Class?} null : #t65.{self::Class::property}.{self::Class::method}().{self::Class::field};
  let final self::Class #t66 = c{self::Class} in #t66.{core::Object::==}(null) ?{self::Class} null : #t66.{self::Class::property}.{self::Class::method}().{self::Class::field} = new self::Class::•();
  c = let final self::Class #t67 = c{self::Class} in #t67.{core::Object::==}(null) ?{self::Class} null : #t67.{self::Class::property}.{self::Class::method}().{self::Class::field} = new self::Class::•();
  let final self::Class #t68 = c{self::Class} in #t68.{core::Object::==}(null) ?{self::Class} null : #t68.{self::Class::property}.{self::Class::method}().{self::Class::method}();
  let final self::Class #t69 = c{self::Class} in #t69.{core::Object::==}(null) ?{self::Class?} null : #t69.{self::Class::field} = new self::Class::•().{self::Class::method}().{self::Class::field};
  c = let final self::Class #t70 = c{self::Class} in #t70.{core::Object::==}(null) ?{self::Class?} null : #t70.{self::Class::field} = new self::Class::•().{self::Class::method}().{self::Class::field};
  let final self::Class? #t71 = c in #t71.{core::Object::==}(null) ?{self::Class} null : #t71{self::Class}.{self::Class::field} = new self::Class::•().{self::Class::method}().{self::Class::field} = new self::Class::•();
  c = let final self::Class? #t72 = c in #t72.{core::Object::==}(null) ?{self::Class} null : #t72{self::Class}.{self::Class::field} = new self::Class::•().{self::Class::method}().{self::Class::field} = new self::Class::•();
  let final self::Class #t73 = c{self::Class} in #t73.{core::Object::==}(null) ?{self::Class} null : #t73.{self::Class::field} = new self::Class::•().{self::Class::method}().{self::Class::method}();
  c = let final self::Class #t74 = c{self::Class} in #t74.{core::Object::==}(null) ?{self::Class} null : #t74.{self::Class::field} = new self::Class::•().{self::Class::method}().{self::Class::method}();
  let final self::Class #t75 = c{self::Class} in #t75.{core::Object::==}(null) ?{self::Class?} null : #t75.{self::Class::method}().{self::Class::method}().{self::Class::field};
  let final self::Class #t76 = c{self::Class} in #t76.{core::Object::==}(null) ?{self::Class} null : #t76.{self::Class::method}().{self::Class::method}().{self::Class::field} = new self::Class::•();
  let final self::Class #t77 = c{self::Class} in #t77.{core::Object::==}(null) ?{self::Class} null : #t77.{self::Class::method}().{self::Class::method}().{self::Class::method}();
  let final self::Class #t78 = c{self::Class} in #t78.{core::Object::==}(null) ?{self::Class} null : let final self::Class #t79 = #t78.{self::Class::method}() in #t79.{core::Object::==}(null) ?{self::Class} null : #t79.{self::Class::method}();
}
static method indexAccess(self::Class? c) → void {
  let final self::Class? #t80 = c in #t80.{core::Object::==}(null) ?{self::Class?} null : #t80{self::Class}.{self::Class::[]}(c{self::Class});
  let final self::Class? #t81 = c in #t81.{core::Object::==}(null) ?{self::Class} null : #t81{self::Class}.{self::Class::[]=}(c{self::Class}, new self::Class::•());
  let final self::Class? #t82 = c in #t82.{core::Object::==}(null) ?{self::Class} null : #t82{self::Class}.{self::Class::[]}(c{self::Class}).{self::Class::method}();
  let final self::Class? #t83 = c in #t83.{core::Object::==}(null) ?{self::Class?} null : #t83{self::Class}.{self::Class::field}.{self::Class::[]}(c{self::Class});
  let final self::Class? #t84 = c in #t84.{core::Object::==}(null) ?{self::Class} null : #t84{self::Class}.{self::Class::field}.{self::Class::[]=}(c{self::Class}, new self::Class::•());
  c = let final self::Class? #t85 = c in #t85.{core::Object::==}(null) ?{self::Class} null : let final self::Class? #t86 = #t85{self::Class}.{self::Class::field} in let final self::Class #t87 = c{self::Class} in let final self::Class #t88 = new self::Class::•() in let final void #t89 = #t86.{self::Class::[]=}(#t87, #t88) in #t88;
  let final self::Class #t90 = c{self::Class} in #t90.{core::Object::==}(null) ?{self::Class} null : #t90.{self::Class::field}.{self::Class::[]}(c{self::Class}).{self::Class::method}();
  let final self::Class #t91 = c{self::Class} in #t91.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t92 = #t91.{self::Class::field} in let final self::Class #t93 = c{self::Class} in #t92.{self::Class::[]=}(#t93, #t92.{self::Class::[]}(#t93).{self::Class::+}(0));
  c = let final self::Class #t94 = c{self::Class} in #t94.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t95 = #t94.{self::Class::field} in let final self::Class #t96 = c{self::Class} in let final self::Class? #t97 = #t95.{self::Class::[]}(#t96).{self::Class::+}(0) in let final void #t98 = #t95.{self::Class::[]=}(#t96, #t97) in #t97;
  let final self::Class? #t99 = c in #t99.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t100 = c{self::Class} in #t99{self::Class}.{self::Class::[]}(#t100).{core::Object::==}(null) ?{self::Class?} #t99{self::Class}.{self::Class::[]=}(#t100, c{self::Class}) : null;
  c = let final self::Class? #t101 = c in #t101.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t102 = c{self::Class} in let final self::Class? #t103 = #t101{self::Class}.{self::Class::[]}(#t102) in #t103.{core::Object::==}(null) ?{self::Class?} let final self::Class #t104 = c{self::Class} in let final void #t105 = #t101{self::Class}.{self::Class::[]=}(#t102, #t104) in #t104 : #t103;
  let final self::Class? #t106 = c in #t106.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t107 = c{self::Class} in #t106{self::Class}.{self::Class::[]=}(#t107, #t106{self::Class}.{self::Class::[]}(#t107).{self::Class::+}(0));
  c = let final self::Class? #t108 = c in #t108.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t109 = c{self::Class} in let final self::Class? #t110 = #t108{self::Class}.{self::Class::[]}(#t109).{self::Class::+}(0) in let final void #t111 = #t108{self::Class}.{self::Class::[]=}(#t109, #t110) in #t110;
  let final self::Class? #t112 = c in #t112.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t113 = c{self::Class} in #t112{self::Class}.{self::Class::[]=}(#t113, #t112{self::Class}.{self::Class::[]}(#t113).{self::Class::+}(0));
  c = let final self::Class? #t114 = c in #t114.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t115 = c{self::Class} in let final self::Class? #t116 = #t114{self::Class}.{self::Class::[]}(#t115).{self::Class::+}(0) in let final void #t117 = #t114{self::Class}.{self::Class::[]=}(#t115, #t116) in #t116;
  let final self::Class? #t118 = c in #t118.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t119 = c{self::Class} in #t118{self::Class}.{self::Class::[]=}(#t119, #t118{self::Class}.{self::Class::[]}(#t119).{self::Class::+}(1));
  c = let final self::Class? #t120 = c in #t120.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t121 = c{self::Class} in let final self::Class? #t122 = #t120{self::Class}.{self::Class::[]}(#t121) in let final void #t123 = #t120{self::Class}.{self::Class::[]=}(#t121, #t122.{self::Class::+}(1)) in #t122;
  let final self::Class? #t124 = c in #t124.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t125 = c{self::Class} in let final self::Class? #t126 = #t124{self::Class}.{self::Class::[]}(#t125).{self::Class::+}(1) in let final void #t127 = #t124{self::Class}.{self::Class::[]=}(#t125, #t126) in #t126;
  c = let final self::Class? #t128 = c in #t128.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t129 = c{self::Class} in let final self::Class? #t130 = #t128{self::Class}.{self::Class::[]}(#t129).{self::Class::+}(1) in let final void #t131 = #t128{self::Class}.{self::Class::[]=}(#t129, #t130) in #t130;
  let final self::Class? #t132 = c in #t132.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t133 = #t132{self::Class}.{self::Class::field} in let final self::Class #t134 = c{self::Class} in #t133.{self::Class::[]=}(#t134, #t133.{self::Class::[]}(#t134).{self::Class::+}(1));
  c = let final self::Class? #t135 = c in #t135.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t136 = #t135{self::Class}.{self::Class::field} in let final self::Class #t137 = c{self::Class} in let final self::Class? #t138 = #t136.{self::Class::[]}(#t137) in let final void #t139 = #t136.{self::Class::[]=}(#t137, #t138.{self::Class::+}(1)) in #t138;
  let final self::Class? #t140 = c in #t140.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t141 = #t140{self::Class}.{self::Class::field} in let final self::Class #t142 = c{self::Class} in let final self::Class? #t143 = #t141.{self::Class::[]}(#t142).{self::Class::+}(1) in let final void #t144 = #t141.{self::Class::[]=}(#t142, #t143) in #t143;
  c = let final self::Class? #t145 = c in #t145.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t146 = #t145{self::Class}.{self::Class::field} in let final self::Class #t147 = c{self::Class} in let final self::Class? #t148 = #t146.{self::Class::[]}(#t147).{self::Class::+}(1) in let final void #t149 = #t146.{self::Class::[]=}(#t147, #t148) in #t148;
  let final self::Class? #t150 = c in #t150.{core::Object::==}(null) ?{self::Class?} null : #t150{self::Class}.{self::Class::field}.{self::Class::[]}(c{self::Class}).{self::Class::[]}(c{self::Class});
  let final self::Class? #t151 = c in #t151.{core::Object::==}(null) ?{self::Class} null : #t151{self::Class}.{self::Class::field}.{self::Class::[]}(c{self::Class}).{self::Class::[]=}(c{self::Class}, new self::Class::•());
  c = let final self::Class? #t152 = c in #t152.{core::Object::==}(null) ?{self::Class} null : let final self::Class? #t153 = #t152{self::Class}.{self::Class::field}.{self::Class::[]}(c{self::Class}) in let final self::Class #t154 = c{self::Class} in let final self::Class #t155 = new self::Class::•() in let final void #t156 = #t153.{self::Class::[]=}(#t154, #t155) in #t155;
  let final self::Class #t157 = c{self::Class} in #t157.{core::Object::==}(null) ?{self::Class} null : #t157.{self::Class::field}.{self::Class::[]}(c{self::Class}).{self::Class::[]}(c{self::Class}).{self::Class::method}();
  let final self::Class #t158 = c{self::Class} in #t158.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t159 = #t158.{self::Class::field}.{self::Class::[]}(c{self::Class}) in let final self::Class #t160 = c{self::Class} in #t159.{self::Class::[]=}(#t160, #t159.{self::Class::[]}(#t160).{self::Class::+}(0));
  c = let final self::Class #t161 = c{self::Class} in #t161.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t162 = #t161.{self::Class::field}.{self::Class::[]}(c{self::Class}) in let final self::Class #t163 = c{self::Class} in let final self::Class? #t164 = #t162.{self::Class::[]}(#t163).{self::Class::+}(0) in let final void #t165 = #t162.{self::Class::[]=}(#t163, #t164) in #t164;
  let final self::Class? #t166 = c in #t166.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t167 = #t166{self::Class}.{self::Class::field}.{self::Class::[]}(c{self::Class}) in let final self::Class #t168 = c{self::Class} in #t167.{self::Class::[]=}(#t168, #t167.{self::Class::[]}(#t168).{self::Class::+}(1));
  c = let final self::Class? #t169 = c in #t169.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t170 = #t169{self::Class}.{self::Class::field}.{self::Class::[]}(c{self::Class}) in let final self::Class #t171 = c{self::Class} in let final self::Class? #t172 = #t170.{self::Class::[]}(#t171) in let final void #t173 = #t170.{self::Class::[]=}(#t171, #t172.{self::Class::+}(1)) in #t172;
  let final self::Class? #t174 = c in #t174.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t175 = #t174{self::Class}.{self::Class::field}.{self::Class::[]}(c{self::Class}) in let final self::Class #t176 = c{self::Class} in let final self::Class? #t177 = #t175.{self::Class::[]}(#t176).{self::Class::+}(1) in let final void #t178 = #t175.{self::Class::[]=}(#t176, #t177) in #t177;
  c = let final self::Class? #t179 = c in #t179.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t180 = #t179{self::Class}.{self::Class::field}.{self::Class::[]}(c{self::Class}) in let final self::Class #t181 = c{self::Class} in let final self::Class? #t182 = #t180.{self::Class::[]}(#t181).{self::Class::+}(1) in let final void #t183 = #t180.{self::Class::[]=}(#t181, #t182) in #t182;
  let final self::Class? #t184 = c in #t184.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t185 = #t184{self::Class}.{self::Class::[]}(c{self::Class}) in #t185.{core::Object::==}(null) ?{self::Class?} null : #t185{self::Class}.{self::Class::[]}(c{self::Class});
  let final self::Class? #t186 = c in #t186.{core::Object::==}(null) ?{self::Class} null : let final self::Class? #t187 = #t186{self::Class}.{self::Class::[]}(c{self::Class}) in #t187.{core::Object::==}(null) ?{self::Class} null : #t187{self::Class}.{self::Class::[]=}(c{self::Class}, new self::Class::•());
  c = let final self::Class? #t188 = c in #t188.{core::Object::==}(null) ?{self::Class} null : let final self::Class? #t189 = #t188{self::Class}.{self::Class::[]}(c{self::Class}) in #t189.{core::Object::==}(null) ?{self::Class} null : let final self::Class #t190 = c{self::Class} in let final self::Class #t191 = new self::Class::•() in let final void #t192 = #t189{self::Class}.{self::Class::[]=}(#t190, #t191) in #t191;
  let final self::Class #t193 = c{self::Class} in #t193.{core::Object::==}(null) ?{self::Class} null : let final self::Class? #t194 = #t193.{self::Class::[]}(c{self::Class}) in #t194.{core::Object::==}(null) ?{self::Class} null : #t194{self::Class}.{self::Class::[]}(c{self::Class}).{self::Class::method}();
  c = let final self::Class #t195 = c{self::Class} in #t195.{core::Object::==}(null) ?{self::Class} null : let final self::Class? #t196 = #t195.{self::Class::[]}(c{self::Class}) in #t196.{core::Object::==}(null) ?{self::Class} null : #t196{self::Class}.{self::Class::[]}(c{self::Class}).{self::Class::method}();
  let final self::Class #t197 = c{self::Class} in #t197.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t198 = #t197.{self::Class::[]}(c{self::Class}) in #t198.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t199 = c{self::Class} in #t198{self::Class}.{self::Class::[]}(#t199).{core::Object::==}(null) ?{self::Class?} #t198{self::Class}.{self::Class::[]=}(#t199, c{self::Class}) : null;
  c = let final self::Class #t200 = c{self::Class} in #t200.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t201 = #t200.{self::Class::[]}(c{self::Class}) in #t201.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t202 = c{self::Class} in let final self::Class? #t203 = #t201{self::Class}.{self::Class::[]}(#t202) in #t203.{core::Object::==}(null) ?{self::Class?} let final self::Class #t204 = c{self::Class} in let final void #t205 = #t201{self::Class}.{self::Class::[]=}(#t202, #t204) in #t204 : #t203;
  let final self::Class? #t206 = c in #t206.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t207 = #t206{self::Class}.{self::Class::[]}(c{self::Class}) in #t207.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t208 = c{self::Class} in #t207{self::Class}.{self::Class::[]=}(#t208, #t207{self::Class}.{self::Class::[]}(#t208).{self::Class::+}(0));
  c = let final self::Class? #t209 = c in #t209.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t210 = #t209{self::Class}.{self::Class::[]}(c{self::Class}) in #t210.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t211 = c{self::Class} in let final self::Class? #t212 = #t210{self::Class}.{self::Class::[]}(#t211).{self::Class::+}(0) in let final void #t213 = #t210{self::Class}.{self::Class::[]=}(#t211, #t212) in #t212;
  let final self::Class? #t214 = c in #t214.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t215 = #t214{self::Class}.{self::Class::[]}(c{self::Class}) in #t215.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t216 = c{self::Class} in #t215{self::Class}.{self::Class::[]=}(#t216, #t215{self::Class}.{self::Class::[]}(#t216).{self::Class::+}(1));
  c = let final self::Class? #t217 = c in #t217.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t218 = #t217{self::Class}.{self::Class::[]}(c{self::Class}) in #t218.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t219 = c{self::Class} in let final self::Class? #t220 = #t218{self::Class}.{self::Class::[]}(#t219) in let final void #t221 = #t218{self::Class}.{self::Class::[]=}(#t219, #t220.{self::Class::+}(1)) in #t220;
  let final self::Class? #t222 = c in #t222.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t223 = #t222{self::Class}.{self::Class::[]}(c{self::Class}) in #t223.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t224 = c{self::Class} in let final self::Class? #t225 = #t223{self::Class}.{self::Class::[]}(#t224).{self::Class::+}(1) in let final void #t226 = #t223{self::Class}.{self::Class::[]=}(#t224, #t225) in #t225;
  c = let final self::Class? #t227 = c in #t227.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t228 = #t227{self::Class}.{self::Class::[]}(c{self::Class}) in #t228.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t229 = c{self::Class} in let final self::Class? #t230 = #t228{self::Class}.{self::Class::[]}(#t229).{self::Class::+}(1) in let final void #t231 = #t228{self::Class}.{self::Class::[]=}(#t229, #t230) in #t230;
}
static method operatorAccess(self::Class? c) → void {
  self::throws(() → self::Class? => (let final self::Class? #t232 = c in #t232.{core::Object::==}(null) ?{self::Class?} null : #t232{self::Class}.{self::Class::field}).{self::Class::+}(0));
  self::throws(() → self::Class? => (let final self::Class? #t233 = c in #t233.{core::Object::==}(null) ?{self::Class?} null : #t233{self::Class}.{self::Class::field}).{self::Class::unary-}());
  let final self::Class? #t234 = c in #t234.{core::Object::==}(null) ?{self::Class?} null : #t234.{self::Class::field} = #t234.{self::Class::field}.{self::Class::+}(0);
  c = let final self::Class? #t235 = c in #t235.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t236 = #t235.{self::Class::field}.{self::Class::+}(0) in let final void #t237 = #t235.{self::Class::field} = #t236 in #t236;
  let final self::Class? #t238 = c in #t238.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t239 = #t238{self::Class}.{self::Class::property} in #t239.{self::Class::field} = #t239.{self::Class::field}.{self::Class::+}(0);
  c = let final self::Class? #t240 = c in #t240.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t241 = #t240{self::Class}.{self::Class::property} in #t241.{self::Class::field} = #t241.{self::Class::field}.{self::Class::+}(0);
  let final self::Class? #t242 = c in #t242.{core::Object::==}(null) ?{self::Class?} null : #t242.{self::Class::field} = #t242.{self::Class::field}.{self::Class::+}(1);
  c = let final self::Class? #t243 = c in #t243.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t244 = #t243.{self::Class::field} in let final void #t245 = #t243.{self::Class::field} = #t244.{self::Class::+}(1) in #t244;
  let final self::Class? #t246 = c in #t246.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t247 = #t246.{self::Class::field}.{self::Class::+}(1) in let final void #t248 = #t246.{self::Class::field} = #t247 in #t247;
  c = let final self::Class? #t249 = c in #t249.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t250 = #t249.{self::Class::field}.{self::Class::+}(1) in let final void #t251 = #t249.{self::Class::field} = #t250 in #t250;
}
static method ifNull(self::Class? c) → void {
  let final self::Class? #t252 = c in #t252.{core::Object::==}(null) ?{self::Class?} null : #t252.{self::Class::field}.{core::Object::==}(null) ?{self::Class?} #t252.{self::Class::field} = c{self::Class} : null;
  c = let final self::Class? #t253 = c in #t253.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t254 = #t253.{self::Class::field} in #t254.{core::Object::==}(null) ?{self::Class?} #t253.{self::Class::field} = c{self::Class} : #t254;
  let final self::Class? #t255 = c in #t255.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t256 = #t255{self::Class}.{self::Class::property} in #t256.{self::Class::field}.{core::Object::==}(null) ?{self::Class?} #t256.{self::Class::field} = c{self::Class} : null;
  c = let final self::Class? #t257 = c in #t257.{core::Object::==}(null) ?{self::Class?} null : let final self::Class #t258 = #t257{self::Class}.{self::Class::property} in let final self::Class? #t259 = #t258.{self::Class::field} in #t259.{core::Object::==}(null) ?{self::Class?} #t258.{self::Class::field} = c{self::Class} : #t259;
  let final self::Class? #t260 = c in #t260.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t261 = #t260{self::Class}.{self::Class::field} in let final self::Class #t262 = c{self::Class} in #t261.{self::Class::[]}(#t262).{core::Object::==}(null) ?{self::Class?} #t261.{self::Class::[]=}(#t262, c{self::Class}) : null;
  c = let final self::Class? #t263 = c in #t263.{core::Object::==}(null) ?{self::Class?} null : let final self::Class? #t264 = #t263{self::Class}.{self::Class::field} in let final self::Class #t265 = c{self::Class} in let final self::Class? #t266 = #t264.{self::Class::[]}(#t265) in #t266.{core::Object::==}(null) ?{self::Class?} let final self::Class #t267 = c{self::Class} in let final void #t268 = #t264.{self::Class::[]=}(#t265, #t267) in #t267 : #t266;
}
static method throws(() → void f) → void {
  try {
    f.call();
  }
  on dynamic catch(final dynamic _) {
    return;
  }
  throw "Expected exception.";
}
