|  | library; | 
|  | // | 
|  | // Problems in library: | 
|  | // | 
|  | // pkg/front_end/testcases/general/issue54553.dart:8:7: Error: Can't implement 'A?' because it's nullable. | 
|  | // Try removing the question mark. | 
|  | // class B implements A? {} // Error. | 
|  | //       ^ | 
|  | // | 
|  | // pkg/front_end/testcases/general/issue54553.dart:10:49: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. | 
|  | // extension type EIAliasNullable(A? _) implements F<A?> {} // Error. | 
|  | //                                                 ^ | 
|  | // pkg/front_end/testcases/general/issue54553.dart:9:11: Context: This is the type variable ultimately denoted. | 
|  | // typedef F<T> = T; | 
|  | //           ^ | 
|  | // | 
|  | // pkg/front_end/testcases/general/issue54553.dart:5:46: Error: Can't implement 'int?' because it's nullable. | 
|  | // Try removing the question mark. | 
|  | // extension type EINullable(int? _) implements int? {} // Error. | 
|  | //                                              ^ | 
|  | // | 
|  | // pkg/front_end/testcases/general/issue54553.dart:10:49: Error: The type 'F<A?>' which is an alias of 'A?' can't be implemented by an extension type because it is nullable. | 
|  | //  - 'A' is from 'pkg/front_end/testcases/general/issue54553.dart'. | 
|  | // extension type EIAliasNullable(A? _) implements F<A?> {} // Error. | 
|  | //                                                 ^ | 
|  | // pkg/front_end/testcases/general/issue54553.dart:9:9: Context: The issue arises via this type alias. | 
|  | // typedef F<T> = T; | 
|  | //         ^ | 
|  | // | 
|  | import self as self; | 
|  | import "dart:core" as core; | 
|  |  | 
|  | typedef F<T extends core::Object? = dynamic> = T%; | 
|  | class A extends core::Object { | 
|  | synthetic constructor •() → self::A | 
|  | : super core::Object::•() | 
|  | ; | 
|  | } | 
|  | class B extends core::Object implements self::A { | 
|  | synthetic constructor •() → self::B | 
|  | : super core::Object::•() | 
|  | ; | 
|  | } | 
|  | extension type EINullable(core::int? _) { | 
|  | abstract extension-type-member representation-field get _() → core::int?; | 
|  | constructor • = self::EINullable|constructor#; | 
|  | constructor tearoff • = self::EINullable|constructor#_#new#tearOff; | 
|  | } | 
|  | extension type EIAliasNullable(self::A? _) { | 
|  | abstract extension-type-member representation-field get _() → self::A?; | 
|  | constructor • = self::EIAliasNullable|constructor#; | 
|  | constructor tearoff • = self::EIAliasNullable|constructor#_#new#tearOff; | 
|  | } | 
|  | static extension-type-member method EINullable|constructor#(core::int? _) → self::EINullable% /* erasure=core::int?, declared=! */ { | 
|  | lowered final self::EINullable% /* erasure=core::int?, declared=! */ #this = _; | 
|  | return #this; | 
|  | } | 
|  | static extension-type-member method EINullable|constructor#_#new#tearOff(core::int? _) → self::EINullable% /* erasure=core::int?, declared=! */ | 
|  | return self::EINullable|constructor#(_); | 
|  | static extension-type-member method EIAliasNullable|constructor#(self::A? _) → self::EIAliasNullable% /* erasure=self::A?, declared=! */ { | 
|  | lowered final self::EIAliasNullable% /* erasure=self::A?, declared=! */ #this = _; | 
|  | return #this; | 
|  | } | 
|  | static extension-type-member method EIAliasNullable|constructor#_#new#tearOff(self::A? _) → self::EIAliasNullable% /* erasure=self::A?, declared=! */ | 
|  | return self::EIAliasNullable|constructor#(_); |