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

class Class extends core::Object {
  field core::int? _#Class#field1;
  field core::bool _#Class#field1#isSet;
  field core::int? _#Class#field2;
  field core::bool _#Class#field2#isSet;
  field core::int? _#Class#field3;
  field core::bool _#Class#field3#isSet;
  field core::int? _#Class#field4;
  field core::bool _#Class#field4#isSet;
  synthetic constructor •() → self::Class
    ;
  get field1() → core::int;
  set field1(core::int #t1) → void;
  get field2() → core::int;
  set field2(core::int #t2) → void;
  get field3() → core::int;
  set field3(core::int #t3) → void;
  get field4() → core::int;
  set field4(core::int #t4) → void;
}
class SubClass extends self::Class {
  field core::int? _#SubClass#field1;
  field core::bool _#SubClass#field1#isSet;
  field core::int? _#SubClass#field2;
  field core::bool _#SubClass#field2#isSet;
  field core::int? _#SubClass#field3;
  field core::bool _#SubClass#field3#isSet;
  field core::int? _#SubClass#field4;
  field core::bool _#SubClass#field4#isSet;
  synthetic constructor •() → self::SubClass
    ;
  get field1() → core::int;
  set field1(core::int #t5) → void;
  get field2() → core::int;
  set field2(core::int #t6) → void;
  get field3() → core::int;
  set field3(core::int #t7) → void;
  get field4() → core::int;
  get directField1() → core::int
    ;
  set directField1(core::int value) → void
    ;
  get directField2() → core::int
    ;
  set directField2(core::int value) → void
    ;
  get directField3() → core::int
    ;
  get directField4() → core::int
    ;
}
static method main() → dynamic
  ;
static method expect(dynamic expected, dynamic actual) → dynamic
  ;
static method throws(() → dynamic f, core::String message) → dynamic
  ;
