blob: 2e817488e9f4bf8c863086d297026128807f15ee [file] [log] [blame]
class A<X extends A<X>> {}
typedef F = Function<Y extends A>();
class B {
B(Function<Z extends A>() a);
factory B.foo(Function<Z extends A>() a) => new B(a);
foo2(Function<Z extends A>() a) {}
Function<Z extends A>() foo3() => throw 42;
Function<Z extends A>() get foo4 => throw 42;
void set foo5(Function<Z extends A>() a) {}
Function<Z extends A>() foo6 = (() => throw 42)();
}
bar2(Function<Z extends A>() a) {}
Function<Z extends A>() bar3() => throw 42;
Function<Z extends A>() get bar4 => throw 42;
void set bar5(Function<Z extends A>() a) {}
Function<Z extends A>() bar6 = (() => throw 42)();
extension E on int {
baz2(Function<Z extends A>() a) {}
Function<Z extends A>() baz3() => throw 42;
Function<Z extends A>() get baz4 => throw 42;
void set baz5(Function<Z extends A>() a) {}
}
main() {}