int nonNullableTopLevelFieldReads = 0;
late
final int nonNullableTopLevelField = nonNullableTopLevelFieldReads++ == 0 ? nonNullableTopLevelField + 1 : 0;
int nullableTopLevelFieldReads = 0;
late
final int? nullableTopLevelField = nullableTopLevelFieldReads++ == 0 ? nullableTopLevelField.hashCode : 0;
class Class {
  static int nonNullableStaticFieldReads = 0;
  static late ;
  final int nonNullableStaticField = nonNullableStaticFieldReads++ == 0 ? nonNullableStaticField + 1 : 0;
  static int nullableStaticFieldReads = 0;
  static late ;
  final int? nullableStaticField = nullableStaticFieldReads++ == 0 ? nullableStaticField.hashCode : 0;
  int nonNullableInstanceFieldReads = 0;
  late
  final int nonNullableInstanceField = nonNullableInstanceFieldReads++ == 0 ? nonNullableInstanceField + 1 : 0;
  int nullableInstanceFieldReads = 0;
  late
  final int? nullableInstanceField = nullableInstanceFieldReads++ == 0 ? nullableInstanceField.hashCode : 0;
}
void main() {}
throws(f(), String message) {}
