library;
//
// Problems in library:
//
// pkg/front_end/testcases/super_parameters/opt_out.dart:14:5: Error: The 'super-parameters' language feature is disabled for this library.
// Try removing the `@dart=` annotation or setting the language version to 2.17 or higher.
//   B(super.field);
//     ^^^^^
// pkg/front_end/testcases/super_parameters/opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'super-parameters' language feature.
// // @dart=2.15
// ^^^^^^^^^^^^^
//
// pkg/front_end/testcases/super_parameters/opt_out.dart:14:3: Error: The implicitly called unnamed constructor from 'A' has required parameters.
// Try adding an explicit super initializer with the required arguments.
//   B(super.field);
//   ^
//
import self as self;
import "dart:core" as core;

class A extends core::Object {
  field core::int field;
  constructor •(core::int field) → self::A
    : self::A::field = field, super core::Object::•()
    ;
}
class B extends self::A {
  constructor •(core::int field) → self::B
    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/super_parameters/opt_out.dart:14:3: Error: The implicitly called unnamed constructor from 'A' has required parameters.
Try adding an explicit super initializer with the required arguments.
  B(super.field);
  ^"
    ;
}
static method main() → dynamic {}
