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

class Interface extends core::Object {
  field core::int? _#Interface#implementedLateFieldDeclaredGetterSetter = null;
  synthetic constructor •() → self::Interface
    : super core::Object::•()
    ;
  get implementedLateFieldDeclaredGetterSetter() → core::int
    return let final core::int? #t1 = this.{self::Interface::_#Interface#implementedLateFieldDeclaredGetterSetter} in #t1.==(null) ?{core::int} throw new _in::LateError::fieldNI("implementedLateFieldDeclaredGetterSetter") : #t1{core::int};
  set implementedLateFieldDeclaredGetterSetter(core::int #t2) → void
    this.{self::Interface::_#Interface#implementedLateFieldDeclaredGetterSetter} = #t2;
}
class Class extends core::Object implements self::Interface {
  synthetic constructor •() → self::Class
    : super core::Object::•()
    ;
  get implementedLateFieldDeclaredGetterSetter() → core::int
    return 0;
  set implementedLateFieldDeclaredGetterSetter(core::int value) → void {}
}
static method main() → dynamic {}
