library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:10:33: Error: Getter not found: 'foo1'.
// A<X> Function<X>(X) bar1() => A.foo1; // Ok.
//                                 ^^^^
//
// pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:11:33: Error: Getter not found: 'foo2'.
// A<X> Function<X>(X) bar2() => A.foo2; // Error.
//                                 ^^^^
//
import self as self;
import "dart:core" as core;

class A<X extends core::Object? = dynamic> extends core::Object {
  constructor foo1(self::A::X% x) → self::A<self::A::X%>
    : super core::Object::•() {}
  constructor foo2(self::A::X% x, core::int y) → self::A<self::A::X%>
    : super core::Object::•() {}
}
static method bar1() → <X extends core::Object? = dynamic>(X%) → self::A<X%>
  return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:10:33: Error: Getter not found: 'foo1'.
A<X> Function<X>(X) bar1() => A.foo1; // Ok.
                                ^^^^";
static method bar2() → <X extends core::Object? = dynamic>(X%) → self::A<X%>
  return invalid-expression "pkg/front_end/testcases/constructor_tearoffs/generic_tearoff_with_context.dart:11:33: Error: Getter not found: 'foo2'.
A<X> Function<X>(X) bar2() => A.foo2; // Error.
                                ^^^^";
static method main() → dynamic {}
