blob: 1e1227fcc31fd1eb41d9d6206d52aed6e82267cc [file] [log] [blame]
class A<T> {}
typedef B<X extends A<X>> = A<X>;
foo() {}
B<A<int>> bar1a() => throw 42;
A<B<A<int>>> bar1b() => throw 42;
bar2a(B<A<int>> x) => throw 42;
bar2b(A<B<A<int>>> x) => throw 42;
bar3a<X extends B<A<int>>>() => throw 42;
bar3b<X extends A<B<A<int>>>>() => throw 42;
class Bar1<X extends B<A<int>>> {
B<A<int>> barBar11() => throw 42;
barBar12(B<A<int>> x) => throw 42;
barBar13<X extends B<A<int>>>() => throw 42;
}
class Bar2<X extends A<B<A<int>>>> {
A<B<A<int>>> barBar21() => throw 42;
barBar22(A<B<A<int>>> x) => throw 42;
barBar23<X extends A<B<A<int>>>>() => throw 42;
}
typedef Baz1 = B<A<int>>;
typedef Baz2 = A<B<A<int>>>;
main() {}