library;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/null_shorting.dart:87:47: Warning: Property 'nullable1' is accessed on 'Class1?' which is potentially null.
//  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting.dart'.
// Try accessing using ?. instead.
//   throws(() => (n1?.nullable1 = new Class1()).nullable1);
//                                               ^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/null_shorting.dart:88:43: Warning: Property 'nullable1' is accessed on 'Class1?' which is potentially null.
//  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting.dart'.
// Try accessing using ?. instead.
//   throws(() => (n1?.nonNullable1Method()).nullable1);
//                                           ^^^^^^^^^
//
// pkg/front_end/testcases/nnbd/null_shorting.dart:226:33: Warning: Operator '+' is called on 'Class1?' which is potentially null.
//  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting.dart'.
//   throws(() => n1?.nonNullable1 + 0);
//                                 ^
//
// pkg/front_end/testcases/nnbd/null_shorting.dart:227:16: Warning: Operator 'unary-' is called on 'Class1?' which is potentially null.
//  - 'Class1' is from 'pkg/front_end/testcases/nnbd/null_shorting.dart'.
//   throws(() => -n1?.nonNullable1);
//                ^
//
import self as self;
import "dart:core" as core;

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