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

class Class extends core::Object {
  static const field core::int staticConstField = 123;
  static field core::int? staticFieldWithoutInitializer;
  field core::int nonNullableInstanceFieldWithInitializer;
  field core::int? nullableInstanceFieldWithInitializer;
  static field core::int? _#nonNullableStaticFieldWithInitializer1;
  static field core::bool _#nonNullableStaticFieldWithInitializer1#isSet;
  static field core::int? _#nullableStaticFieldWithInitializer1;
  static field core::bool _#nullableStaticFieldWithInitializer1#isSet;
  static field core::int? _#nonNullableStaticFieldWithInitializer2;
  static field core::bool _#nonNullableStaticFieldWithInitializer2#isSet;
  static field core::int? _#nullableStaticFieldWithInitializer2;
  static field core::bool _#nullableStaticFieldWithInitializer2#isSet;
  static field core::int? _#nonNullableStaticFinalFieldWithInitializer1;
  static field core::bool _#nonNullableStaticFinalFieldWithInitializer1#isSet;
  static field core::int? _#nullableStaticFinalFieldWithInitializer1;
  static field core::bool _#nullableStaticFinalFieldWithInitializer1#isSet;
  static field core::int? _#nonNullableStaticFinalFieldWithInitializer2Init;
  static field core::bool _#nonNullableStaticFinalFieldWithInitializer2Init#isSet;
  static field core::int? _#nonNullableStaticFinalFieldWithInitializer2;
  static field core::bool _#nonNullableStaticFinalFieldWithInitializer2#isSet;
  static field core::int? _#nullableStaticFinalFieldWithInitializer2Init;
  static field core::bool _#nullableStaticFinalFieldWithInitializer2Init#isSet;
  static field core::int? _#nullableStaticFinalFieldWithInitializer2;
  static field core::bool _#nullableStaticFinalFieldWithInitializer2#isSet;
  synthetic constructor •() → self::Class
    ;
  static get nonNullableStaticFieldWithInitializer1() → core::int;
  static set nonNullableStaticFieldWithInitializer1(core::int #t1) → void;
  static get nullableStaticFieldWithInitializer1() → core::int?;
  static set nullableStaticFieldWithInitializer1(core::int? #t2) → void;
  static get nonNullableStaticFieldWithInitializer2() → core::int;
  static set nonNullableStaticFieldWithInitializer2(core::int #t3) → void;
  static get nullableStaticFieldWithInitializer2() → core::int?;
  static set nullableStaticFieldWithInitializer2(core::int? #t4) → void;
  static get nonNullableStaticFinalFieldWithInitializer1() → core::int;
  static get nullableStaticFinalFieldWithInitializer1() → core::int?;
  static get nonNullableStaticFinalFieldWithInitializer2Init() → core::int;
  static set nonNullableStaticFinalFieldWithInitializer2Init(core::int #t5) → void;
  static get nonNullableStaticFinalFieldWithInitializer2() → core::int;
  static get nullableStaticFinalFieldWithInitializer2Init() → core::int;
  static set nullableStaticFinalFieldWithInitializer2Init(core::int #t6) → void;
  static get nullableStaticFinalFieldWithInitializer2() → core::int?;
}
static field dynamic lastInit;
static const field core::int constTopLevelField = 324;
static field core::int? topLevelFieldWithoutInitializer;
static field core::int? _#nonNullableTopLevelFieldWithInitializer1;
static field core::bool _#nonNullableTopLevelFieldWithInitializer1#isSet;
static field core::int? _#nullableTopLevelFieldWithInitializer;
static field core::bool _#nullableTopLevelFieldWithInitializer#isSet;
static field core::int? _#nonNullableTopLevelFieldWithInitializer2;
static field core::bool _#nonNullableTopLevelFieldWithInitializer2#isSet;
static field core::int? _#nullableTopLevelFieldWithInitializer2;
static field core::bool _#nullableTopLevelFieldWithInitializer2#isSet;
static field core::int? _#nonNullableFinalTopLevelFieldWithInitializer1;
static field core::bool _#nonNullableFinalTopLevelFieldWithInitializer1#isSet;
static field core::int? _#nullableFinalTopLevelFieldWithInitializer1;
static field core::bool _#nullableFinalTopLevelFieldWithInitializer1#isSet;
static field core::int? _#nonNullableFinalTopLevelFieldWithInitializer2Init;
static field core::bool _#nonNullableFinalTopLevelFieldWithInitializer2Init#isSet;
static field core::int? _#nonNullableFinalTopLevelFieldWithInitializer2;
static field core::bool _#nonNullableFinalTopLevelFieldWithInitializer2#isSet;
static field core::int? _#nullableFinalTopLevelFieldWithInitializer2Init;
static field core::bool _#nullableFinalTopLevelFieldWithInitializer2Init#isSet;
static field core::int? _#nullableFinalTopLevelFieldWithInitializer2;
static field core::bool _#nullableFinalTopLevelFieldWithInitializer2#isSet;
static method init<T extends core::Object? = dynamic>(self::init::T% value) → self::init::T%
  ;
static get nonNullableTopLevelFieldWithInitializer1() → core::int;
static set nonNullableTopLevelFieldWithInitializer1(core::int #t7) → void;
static get nullableTopLevelFieldWithInitializer() → core::int?;
static set nullableTopLevelFieldWithInitializer(core::int? #t8) → void;
static get nonNullableTopLevelFieldWithInitializer2() → core::int;
static set nonNullableTopLevelFieldWithInitializer2(core::int #t9) → void;
static get nullableTopLevelFieldWithInitializer2() → core::int?;
static set nullableTopLevelFieldWithInitializer2(core::int? #t10) → void;
static get nonNullableFinalTopLevelFieldWithInitializer1() → core::int;
static get nullableFinalTopLevelFieldWithInitializer1() → core::int?;
static get nonNullableFinalTopLevelFieldWithInitializer2Init() → core::int;
static set nonNullableFinalTopLevelFieldWithInitializer2Init(core::int #t11) → void;
static get nonNullableFinalTopLevelFieldWithInitializer2() → core::int;
static get nullableFinalTopLevelFieldWithInitializer2Init() → core::int;
static set nullableFinalTopLevelFieldWithInitializer2Init(core::int #t12) → void;
static get nullableFinalTopLevelFieldWithInitializer2() → core::int?;
static method main() → dynamic
  ;
static method expect(dynamic expected, dynamic actual) → dynamic
  ;
static method throws(() → dynamic f, core::String message) → dynamic
  ;
