// @dart = 2.8
dynamic lastInit;
T init<T>(T value) {}
const int constTopLevelField = 324;
int topLevelFieldWithoutInitializer;
int topLevelFieldWithInitializer1 = init(42);
int topLevelFieldWithInitializer2 = init(42);
final int finalTopLevelFieldWithInitializer1 = init(87);
int finalTopLevelFieldWithInitializer2Init = 0;
final int finalTopLevelFieldWithInitializer2 =
    finalTopLevelFieldWithInitializer2Init++ == 0
        ? finalTopLevelFieldWithInitializer2 + 1
        : 87;

class Class {
  static const int staticConstField = 123;
  static int staticFieldWithoutInitializer;
  static int staticFieldWithInitializer1 = init(55);
  static int staticFieldWithInitializer2 = init(55);
  static final int staticFinalFieldWithInitializer1 = init(73);
  static int staticFinalFieldWithInitializer2Init = 0;
  static final int staticFinalFieldWithInitializer2 =
      staticFinalFieldWithInitializer2Init++ == 0
          ? staticFinalFieldWithInitializer2 + 1
          : 87;
}

main() {}
expect(expected, actual) {}
throws(f(), String message) {}
