library;
//
// Problems in library:
//
// pkg/front_end/testcases/general/issue49357a.dart:11:9: Error: Can't find '}' to match '{'.
// class C {
//         ^
//
// pkg/front_end/testcases/general/issue49357a.dart:5:26: Error: Type 'B' not found.
// abstract class A extends B {
//                          ^
//
// pkg/front_end/testcases/general/issue49357a.dart:6:3: Error: The superclass, 'B', has no unnamed constructor that takes no arguments.
//   A({
//   ^
//
import self as self;
import "dart:core" as core;

abstract class A extends core::Object {
  constructor •({required invalid-type field = #C1}) → self::A
    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/general/issue49357a.dart:6:3: Error: The superclass, 'B', has no unnamed constructor that takes no arguments.
  A({
  ^"
    ;
}
class C extends core::Object {
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
  method method(dynamic list) → void {
    for (final dynamic element in list as{TypeError,ForDynamic} core::Iterable<dynamic>) {
    }
  }
}

constants  {
  #C1 = null
}
