| class Class1 { |
| double method(int o) => 0.5; |
| } |
| |
| class Class2<T> { |
| T field; |
| Class2(this.field, this.nonNullableFunctionField, |
| this.nonNullableFunctionTypedField); |
| T call() => field; |
| T method(int o) => field; |
| Function nonNullableFunctionField; |
| Function get nonNullableFunctionGetter => nonNullableFunctionTypedField; |
| Function? nullableFunctionField; |
| Function? get nullableFunctionGetter => nonNullableFunctionTypedField; |
| void Function() nonNullableFunctionTypedField; |
| void Function() get nonNullableFunctionTypedGetter => |
| nonNullableFunctionTypedField; |
| void Function()? nullableFunctionTypedField; |
| void Function()? get nullableFunctionTypedGetter => |
| nonNullableFunctionTypedField; |
| } |
| |
| const int i = 4; |
| const int j = 24; |
| const int k = i * j; |
| test<T1 extends Function, T2 extends int Function(int), T3>( |
| Class1 nonNullableClass1, |
| Class1? nullableClass1, |
| dynamic dyn, |
| Never never, |
| Class2<String> nonNullableClass2, |
| Class2<String>? nullableClass2, |
| Function nonNullableFunction, |
| Function? nullableFunction, |
| int Function(int) nonNullableFunctionType, |
| int Function(int)? nullableFunctionType, |
| T Function<T>(T) genericFunctionType, |
| T1 nonNullableTypeVariable1, |
| T1? nullableTypeVariable1, |
| T2 nonNullableTypeVariable2, |
| T2? nullableTypeVariable2, |
| T3 undeterminedTypeVariable) {} |
| main() {} |