library;
//
// Problems in library:
//
// pkg/front_end/testcases/regress/issue_31198.dart:8:8: Error: Can't use 'super' as an expression.
// To delegate a constructor to a super constructor, put the super call as an initializer.
//   B(): super().foo() {}
//        ^
//
// pkg/front_end/testcases/regress/issue_31198.dart:8:16: Error: Expected an initializer.
//   B(): super().foo() {}
//                ^
//
// pkg/front_end/testcases/regress/issue_31198.dart:9:23: Error: Expected identifier, but got 'super'.
//   B.named1(): super().super() {}
//                       ^^^^^
//
// pkg/front_end/testcases/regress/issue_31198.dart:10:23: Error: Expected an identifier, but got '('.
// Try inserting an identifier before '('.
//   B.named2(): super().() {}
//                       ^
//
import self as self;
import "dart:core" as core;

abstract class A extends core::Object {
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
}
class B extends self::A {
  constructor •() → self::B
    : invalid-initializer "pkg/front_end/testcases/regress/issue_31198.dart:8:16: Error: Expected an initializer.
  B(): super().foo() {}
               ^" {}
  constructor named1() → self::B
    : invalid-initializer "pkg/front_end/testcases/regress/issue_31198.dart:9:23: Error: Expected identifier, but got 'super'.
  B.named1(): super().super() {}
                      ^^^^^" {}
  constructor named2() → self::B
    : invalid-initializer "pkg/front_end/testcases/regress/issue_31198.dart:10:23: Error: Expected an identifier, but got '('.
Try inserting an identifier before '('.
  B.named2(): super().() {}
                      ^" {}
}
static method bad() → dynamic {
  new self::B::•();
}
static method main() → dynamic {}
