library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:23: Error: Positional super-initializer parameters cannot be used when the super initializer has positional arguments.
//   C(super.foo) : super(42); // Error.
//                       ^
// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:11: Context: This is the super-initializer parameter.
//   C(super.foo) : super(42); // Error.
//           ^
//
import self as self;
import "dart:core" as core;

class A extends core::Object {
  final field core::int foo;
  constructor •(core::int foo) → self::A
    : self::A::foo = foo, super core::Object::•()
    ;
}
class B extends self::A {
  constructor •(dynamic foo) → self::B
    : super self::A::•(foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
    ;
}
class C extends self::A {
  constructor •(dynamic foo) → self::C
    : super self::A::•(42)
    ;
}
static method main() → dynamic {}
