library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/super_parameters/default_values.dart:51:11: Error: Expected ']' before this.
//   C5([int super.x]); // Error.
//           ^^^^^
//
// pkg/front_end/testcases/super_parameters/default_values.dart:61:10: Error: Expected ']' before this.
//   C6([int? super.x]); // Ok.
//          ^
//
import self as self;
import "dart:core" as core;

class S1 extends core::Object {
  field core::int s;
  constructor •([core::int x = 0]) → self::S1
    ;
}
class C1 extends self::S1 {
  field core::int c;
  constructor •([core::int x = 0]) → self::C1
    ;
}
class S2 extends core::Object {
  field core::int s;
  constructor •({core::int x = 0}) → self::S2
    ;
}
class C2 extends self::S2 {
  field core::int c;
  constructor •({core::int x = 0}) → self::C2
    ;
}
class S3 extends core::Object {
  field core::int s;
  constructor •([core::int x = 0]) → self::S3
    ;
}
class C3 extends self::S3 {
  field core::int c;
  constructor •([core::int x = 42]) → self::C3
    ;
}
class S4 extends core::Object {
  field core::int s;
  constructor •({core::int x = 0}) → self::S4
    ;
}
class C4 extends self::S4 {
  field core::int c;
  constructor •({core::int x = 42}) → self::C4
    ;
}
class S5 extends core::Object {
  field core::num a;
  constructor •([core::num x = 3.14]) → self::S5
    ;
}
class C5 extends self::S5 {
  constructor •([dynamic int]) → self::C5
    ;
}
class S6 extends core::Object {
  field core::num? a;
  constructor •([core::num? x = 3.14]) → self::S6
    ;
}
class C6 extends self::S6 {
  field core::int? b;
  constructor •([dynamic int]) → self::C6
    ;
}
class S7 extends core::Object {
  field core::int s;
  constructor •([core::int x = 0]) → self::S7
    ;
}
class C7 extends self::S7 {
  field core::int c;
  constructor •([core::int x = 0]) → self::C7
    ;
}
class CC7 extends self::C7 {
  field core::int cc;
  constructor •([core::int x = 0]) → self::CC7
    ;
}
class S8 extends core::Object {
  field core::int s;
  constructor •([core::int x = 0]) → self::S8
    ;
}
class CC8 extends self::C8 {
  field core::int cc;
  constructor •([core::int x = 0]) → self::CC8
    ;
}
class C8 extends self::S8 {
  field core::int c;
  constructor •([core::int x = 0]) → self::C8
    ;
}
class CC9 extends self::C9 {
  field core::int cc;
  constructor •([core::int x = 0]) → self::CC9
    ;
}
class C9 extends self::S9 {
  field core::int c;
  constructor •([core::int x = 0]) → self::C9
    ;
}
class S9 extends core::Object {
  field core::int s;
  constructor •([core::int x = 0]) → self::S9
    ;
}
static method main() → dynamic
  ;
