library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart:8:5: Error: Field 'x' should be initialized because its type 'int' doesn't allow null.
// int x; // Error.
//     ^
//
// pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart:13:14: Error: Field 'x' should be initialized because its type 'int' doesn't allow null.
//   static int x; // Error.
//              ^
//
// pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart:17:7: Error: Field 'lx' should be initialized because its type 'int' doesn't allow null.
//   int lx; // Error.
//       ^^
//
// pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart:23:5: Error: Field 'lt' should be initialized because its type 'T' doesn't allow null.
//   T lt; // Error.
//     ^^
//
import self as self;
import "dart:core" as core;

class A<T extends core::Object? = core::Object?> extends core::Object {
  static field core::int x = null;
  static field core::int? y = null;
  late static field core::int z;
  field core::int lx = null;
  field core::int? ly = null;
  late field core::int? lz;
  field core::int lv;
  field core::int lu;
  generic-covariant-impl field self::A::T% lt = null;
  generic-covariant-impl field self::A::T? ls = null;
  late generic-covariant-impl field self::A::T% lr;
  generic-covariant-impl field self::A::T% lp;
  generic-covariant-impl field self::A::T% lq;
  constructor •(core::int lv, self::A::T% lp, self::A::T% t) → self::A<self::A::T%>
    : self::A::lv = lv, self::A::lp = lp, self::A::lu = 42, self::A::lq = t, super core::Object::•()
    ;
}
static field core::int x;
static field core::int? y;
late static field core::int z;
static method main() → dynamic {}
