library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/super_parameters/super_parameters_outside_constructor.dart:11:17: Error: Super-initializer formal parameters can only be used in generative constructors.
// Try removing 'super.'.
//   factory B.foo(super.x) => new B();
//                 ^^^^^
//
// pkg/front_end/testcases/super_parameters/super_parameters_outside_constructor.dart:14:5: Error: Super-initializer formal parameters can only be used in generative constructors.
// Try removing 'super.'.
// foo(super.x) {}
//     ^^^^^
//
// pkg/front_end/testcases/super_parameters/super_parameters_outside_constructor.dart:17:16: Error: Super-initializer formal parameters can only be used in generative constructors.
// Try removing 'super.'.
//   void set foo(super.value) {}
//                ^^^^^
//
import self as self;
import "dart:core" as core;

class A extends core::Object {
  constructor •(core::int x) → self::A
    : super core::Object::•()
    ;
}
class B extends self::A {
  constructor •() → self::B
    : super self::A::•(42)
    ;
  static factory foo(dynamic x) → self::B
    return new self::B::•();
}
class C extends core::Object {
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
  set foo(dynamic value) → void {}
}
static method foo(dynamic x) → dynamic {}
static method main() → dynamic {}
