| # flags: --minimum-version=3.12 |
| def plain[T, B](a: T, b: T) -> T: |
| return a |
| |
| def arg_magic[T, B](a: T, b: T,) -> T: |
| return a |
| |
| def type_param_magic[T, B,](a: T, b: T) -> T: |
| return a |
| |
| def both_magic[T, B,](a: T, b: T,) -> T: |
| return a |
| |
| |
| def plain_multiline[ |
| T, |
| B |
| ]( |
| a: T, |
| b: T |
| ) -> T: |
| return a |
| |
| def arg_magic_multiline[ |
| T, |
| B |
| ]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| def type_param_magic_multiline[ |
| T, |
| B, |
| ]( |
| a: T, |
| b: T |
| ) -> T: |
| return a |
| |
| def both_magic_multiline[ |
| T, |
| B, |
| ]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| |
| def plain_mixed1[ |
| T, |
| B |
| ](a: T, b: T) -> T: |
| return a |
| |
| def plain_mixed2[T, B]( |
| a: T, |
| b: T |
| ) -> T: |
| return a |
| |
| def arg_magic_mixed1[ |
| T, |
| B |
| ](a: T, b: T,) -> T: |
| return a |
| |
| def arg_magic_mixed2[T, B]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| def type_param_magic_mixed1[ |
| T, |
| B, |
| ](a: T, b: T) -> T: |
| return a |
| |
| def type_param_magic_mixed2[T, B,]( |
| a: T, |
| b: T |
| ) -> T: |
| return a |
| |
| def both_magic_mixed1[ |
| T, |
| B, |
| ](a: T, b: T,) -> T: |
| return a |
| |
| def both_magic_mixed2[T, B,]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| def something_something_function[ |
| T: Model |
| ](param: list[int], other_param: type[T], *, some_other_param: bool = True) -> QuerySet[ |
| T |
| ]: |
| pass |
| |
| |
| def func[A_LOT_OF_GENERIC_TYPES: AreBeingDefinedHere, LIKE_THIS, AND_THIS, ANOTHER_ONE, AND_YET_ANOTHER_ONE: ThisOneHasTyping](a: T, b: T, c: T, d: T, e: T, f: T, g: T, h: T, i: T, j: T, k: T, l: T, m: T, n: T, o: T, p: T) -> T: |
| return a |
| |
| |
| def with_random_comments[ |
| Z |
| # bye |
| ](): |
| return a |
| |
| |
| def func[ |
| T, # comment |
| U # comment |
| , |
| Z: # comment |
| int |
| ](): pass |
| |
| |
| def func[ |
| T, # comment but it's long so it doesn't just move to the end of the line |
| U # comment comment comm comm ent ent |
| , |
| Z: # comment ent ent comm comm comment |
| int |
| ](): pass |
| |
| |
| # output |
| def plain[T, B](a: T, b: T) -> T: |
| return a |
| |
| |
| def arg_magic[T, B]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| |
| def type_param_magic[ |
| T, |
| B, |
| ]( |
| a: T, b: T |
| ) -> T: |
| return a |
| |
| |
| def both_magic[ |
| T, |
| B, |
| ]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| |
| def plain_multiline[T, B](a: T, b: T) -> T: |
| return a |
| |
| |
| def arg_magic_multiline[T, B]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| |
| def type_param_magic_multiline[ |
| T, |
| B, |
| ]( |
| a: T, b: T |
| ) -> T: |
| return a |
| |
| |
| def both_magic_multiline[ |
| T, |
| B, |
| ]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| |
| def plain_mixed1[T, B](a: T, b: T) -> T: |
| return a |
| |
| |
| def plain_mixed2[T, B](a: T, b: T) -> T: |
| return a |
| |
| |
| def arg_magic_mixed1[T, B]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| |
| def arg_magic_mixed2[T, B]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| |
| def type_param_magic_mixed1[ |
| T, |
| B, |
| ]( |
| a: T, b: T |
| ) -> T: |
| return a |
| |
| |
| def type_param_magic_mixed2[ |
| T, |
| B, |
| ]( |
| a: T, b: T |
| ) -> T: |
| return a |
| |
| |
| def both_magic_mixed1[ |
| T, |
| B, |
| ]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| |
| def both_magic_mixed2[ |
| T, |
| B, |
| ]( |
| a: T, |
| b: T, |
| ) -> T: |
| return a |
| |
| |
| def something_something_function[T: Model]( |
| param: list[int], other_param: type[T], *, some_other_param: bool = True |
| ) -> QuerySet[T]: |
| pass |
| |
| |
| def func[ |
| A_LOT_OF_GENERIC_TYPES: AreBeingDefinedHere, |
| LIKE_THIS, |
| AND_THIS, |
| ANOTHER_ONE, |
| AND_YET_ANOTHER_ONE: ThisOneHasTyping, |
| ]( |
| a: T, |
| b: T, |
| c: T, |
| d: T, |
| e: T, |
| f: T, |
| g: T, |
| h: T, |
| i: T, |
| j: T, |
| k: T, |
| l: T, |
| m: T, |
| n: T, |
| o: T, |
| p: T, |
| ) -> T: |
| return a |
| |
| |
| def with_random_comments[ |
| Z |
| # bye |
| ](): |
| return a |
| |
| |
| def func[T, U, Z: int](): # comment # comment # comment |
| pass |
| |
| |
| def func[ |
| T, # comment but it's long so it doesn't just move to the end of the line |
| U, # comment comment comm comm ent ent |
| Z: int, # comment ent ent comm comm comment |
| ](): |
| pass |