library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

class A extends core::Object {
  field self::B b;
  constructor •(self::B b) → self::A
    : self::A::b = b, super core::Object::•()
    ;
}
class B extends core::Object {
  synthetic constructor •() → self::B
    : super core::Object::•()
    ;
  operator +(core::int i) → self::C
    return new self::C::•();
}
class C extends self::B {
  synthetic constructor •() → self::C
    : super self::B::•()
    ;
}
static method main() → dynamic {
  self::A? a;
  let final self::A? #t1 = a in #t1 == null ?{self::B?} null : #t1.{self::A::b} = #t1.{self::A::b}{self::B}.{self::B::+}(1){(core::int) → self::C};
  self::B? c = let final self::A? #t2 = a in #t2 == null ?{self::B?} null : let final self::B #t3 = #t2.{self::A::b}{self::B} in let final void #t4 = #t2.{self::A::b} = #t3.{self::B::+}(1){(core::int) → self::C} in #t3;
}
