blob: 27b2f52e1f13e002a6c74e4516f0ba1f0cae95b8 [file] [log] [blame]
class Class<T> {}
class ConcreteClass implements Class<ConcreteClass> {}
typedef F<X extends Class<X>> = X;
class G<X extends Class<X>> {}
void method1(
F t1,
F<dynamic> t2,
F<Class> t3,
F<Class<dynamic>> t4,
F<ConcreteClass> t5,
F<Class<ConcreteClass>> t6,
F<Object> t7,
F<int> t8, {
required G s1,
required G<dynamic> s2,
required G<Class> s3,
required G<Class<dynamic>> s4,
required G<ConcreteClass> s5,
required G<Class<ConcreteClass>> s6,
required G<Object> s7,
required G<int> s8,
}) {}
class Class1 {
Class1(
F t1,
F<dynamic> t2,
F<Class> t3,
F<Class<dynamic>> t4,
F<ConcreteClass> t5,
F<Class<ConcreteClass>> t6,
F<Object> t7,
F<int> t8, {
required G s1,
required G<dynamic> s2,
required G<Class> s3,
required G<Class<dynamic>> s4,
required G<ConcreteClass> s5,
required G<Class<ConcreteClass>> s6,
required G<Object> s7,
required G<int> s8,
});
void method2(
F t1,
F<dynamic> t2,
F<Class> t3,
F<Class<dynamic>> t4,
F<ConcreteClass> t5,
F<Class<ConcreteClass>> t6,
F<Object> t7,
F<int> t8, {
required G s1,
required G<dynamic> s2,
required G<Class> s3,
required G<Class<dynamic>> s4,
required G<ConcreteClass> s5,
required G<Class<ConcreteClass>> s6,
required G<Object> s7,
required G<int> s8,
}) {}
}
extension Extension1 on int {
void method3(
F t1,
F<dynamic> t2,
F<Class> t3,
F<Class<dynamic>> t4,
F<ConcreteClass> t5,
F<Class<ConcreteClass>> t6,
F<Object> t7,
F<int> t8, {
required G s1,
required G<dynamic> s2,
required G<Class> s3,
required G<Class<dynamic>> s4,
required G<ConcreteClass> s5,
required G<Class<ConcreteClass>> s6,
required G<Object> s7,
required G<int> s8,
}) {}
}
main() {}