class A {}
class B<X> {
  B();
  B.foo();
  factory B.bar() => new B<X>();
}
typedef DA1 = A;
typedef DA2<X extends num> = A;
typedef DB1 = B<String>;
typedef DB2<X extends num> = B<X>;
typedef DB3<X extends num, Y extends String> = B<X>;
DA1 Function() test1() => DA1.new;
A Function() test2() => DA1.new;
DA2<num> Function() test3() => DA2.new;
A Function() test4() => DA2.new;
A Function() test5() => DA2<String>.new;
A Function() test6() => DA2<int>.new;
DB1 Function() test7() => DB1.new;
B<String> Function() test8() => DB1.new;
B<num> Function() test9() => DB1.new;
B<String> Function() test10() => DB1.foo;
B<String> Function() test11() => DB1.bar;
B<num> Function() test12() => DB2<num>.new;
B<num> Function() test13() => DB2<num>.foo;
B<num> Function() test14() => DB2<num>.bar;
B<num> Function() test15() => DB2.new;
B<Y> Function<Y extends num>() test16() => DB2.new;
B<Y> Function<Y>() test17() => DB2.new;
B<num> Function() test18() => DB3<num, String>.new;
B<num> Function() test19() => DB3<num, String>.foo;
B<num> Function() test20() => DB3<num, String>.bar;
B<num> Function() test21() => DB3.new;
B<Y> Function<Y extends num, Z extends String>() test22() => DB3.new;
B<Y> Function<Y, Z>() test23() => DB3.new;
B<String> Function() test24() => DB2.new;
main() {}
