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

class A extends core::Object {
  field core::int? field = null;
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
}
class B extends core::Object implements self::A {
  field core::int? _#B#field = null;
  field core::bool _#B#field#isSet = false;
  synthetic constructor •() → self::B
    : super core::Object::•()
    ;
  get field() → core::int?
    return this.{self::B::_#B#field#isSet} ?{core::int?} this.{self::B::_#B#field} : throw new _in::LateError::fieldNI("field");
  set field(core::int? #t1) → void {
    this.{self::B::_#B#field#isSet} = true;
    this.{self::B::_#B#field} = #t1;
  }
}
static method main() → dynamic {}
