class Class {
  int nonNullableInstanceFieldReads = 0;
  int nullableInstanceFieldReads = 0;
  late final int? nullableInstanceField =
      nullableInstanceFieldReads++ == 0 ? nullableInstanceField.hashCode : 0;
  late final int nonNullableInstanceField =
      nonNullableInstanceFieldReads++ == 0 ? nonNullableInstanceField + 1 : 0;
  static int nonNullableStaticFieldReads = 0;
  static int nullableStaticFieldReads = 0;
  static late final int? nullableStaticField =
      nullableStaticFieldReads++ == 0 ? nullableStaticField.hashCode : 0;
  static late final int nonNullableStaticField =
      nonNullableStaticFieldReads++ == 0 ? nonNullableStaticField + 1 : 0;
}

int nonNullableTopLevelFieldReads = 0;
int nullableTopLevelFieldReads = 0;
late final int? nullableTopLevelField =
    nullableTopLevelFieldReads++ == 0 ? nullableTopLevelField.hashCode : 0;
late final int nonNullableTopLevelField =
    nonNullableTopLevelFieldReads++ == 0 ? nonNullableTopLevelField + 1 : 0;
throws(f(), String message) {}
void main() {}
