| import 'dart:async'; | 
 |  | 
 | method<T extends Class, S extends int>(Class c, int i, T t, S s) {} | 
 |  | 
 | test<T extends Class?, S extends int>( | 
 |     Class? c1, | 
 |     GetterCall c2, | 
 |     int? i, | 
 |     T t1, | 
 |     T? t2, | 
 |     S? s, | 
 |     void Function<T>()? f1, | 
 |     Never n, | 
 |     dynamic d, | 
 |     String a, | 
 |     double b, | 
 |     bool c, | 
 |     FutureOr<Class> f2, | 
 |     Function f3) {} | 
 |  | 
 | Class c1 = Class(); | 
 |  | 
 | Class? c2; | 
 |  | 
 | GetterCall c3 = GetterCall(); | 
 |  | 
 | int i1 = 0; | 
 |  | 
 | int? i2 = null; | 
 |  | 
 | void Function<T>()? f1 = null; | 
 |  | 
 | Never n = throw ''; | 
 |  | 
 | dynamic d = null; | 
 |  | 
 | String a = ''; | 
 |  | 
 | double b = 0.5; | 
 |  | 
 | bool c = true; | 
 |  | 
 | FutureOr<Class> f2 = Class(); | 
 |  | 
 | Function f3 = () {}; | 
 |  | 
 | var topLevel1 = c1<int>; | 
 |  | 
 | var topLevel2 = i1<int>; | 
 |  | 
 | var topLevel3 = c2<int>; | 
 |  | 
 | var topLevel4 = c3<int>; | 
 |  | 
 | var topLevel5 = i2<int>; | 
 |  | 
 | var topLevel6 = f1<int>; | 
 |  | 
 | var topLevel7 = n<int>; | 
 |  | 
 | var topLevel8 = d<int>; | 
 |  | 
 | var topLevel9 = a<int>; | 
 |  | 
 | var topLevel10 = b<int>; | 
 |  | 
 | var topLevel11 = c<int>; | 
 |  | 
 | var topLevel12 = f2<int>; | 
 |  | 
 | var topLevel13 = f3<int>; | 
 |  | 
 | class Class { | 
 |   call<T>() {} | 
 | } | 
 |  | 
 | class GetterCall { | 
 |   void Function<T>() get call => <T>() {}; | 
 | } | 
 |  | 
 | extension Extension on int { | 
 |   call<T>() {} | 
 | } | 
 |  | 
 | extension ExtensionGetter on double { | 
 |   void Function<T>() get call => <T>() {}; | 
 | } | 
 |  | 
 | extension ExtensionSetter on bool { | 
 |   set call(void Function<T>() value) {} | 
 | } | 
 |  | 
 | extension Ambiguous1 on String { | 
 |   call<T>() {} | 
 | } | 
 |  | 
 | extension Ambiguous2 on String { | 
 |   call<T>() {} | 
 | } | 
 |  | 
 | main() {} |