Merge pull request #10678 from tamasvajk/kotlin-type-param-modifiers

Kotlin: Extract type parameter modifiers (`reified`, `in`, `out`)
This commit is contained in:
Tamás Vajk
2022-10-18 09:10:57 +02:00
committed by GitHub
15 changed files with 5051 additions and 14 deletions

View File

@@ -1,5 +1,5 @@
| modifiers.kt:1:1:28:1 | X | Class | public |
| modifiers.kt:1:6:28:1 | X | Constructor | public |
| modifiers.kt:1:1:29:1 | X | Class | public |
| modifiers.kt:1:6:29:1 | X | Constructor | public |
| modifiers.kt:2:5:2:21 | a | Field | final |
| modifiers.kt:2:5:2:21 | a | Field | private |
| modifiers.kt:2:5:2:21 | a | Property | private |
@@ -45,13 +45,26 @@
| modifiers.kt:27:12:27:49 | fn5 | Method | inline |
| modifiers.kt:27:12:27:49 | fn5 | Method | public |
| modifiers.kt:27:20:27:44 | f | Parameter | crossinline |
| modifiers.kt:30:1:36:1 | LateInit | Class | final |
| modifiers.kt:30:1:36:1 | LateInit | Class | public |
| modifiers.kt:30:8:36:1 | LateInit | Constructor | public |
| modifiers.kt:31:5:31:40 | test0 | Field | private |
| modifiers.kt:31:5:31:40 | test0 | Property | lateinit |
| modifiers.kt:31:5:31:40 | test0 | Property | private |
| modifiers.kt:31:22:31:40 | getTest0$private | Method | private |
| modifiers.kt:31:22:31:40 | setTest0$private | Method | private |
| modifiers.kt:33:5:35:5 | fn | Method | public |
| modifiers.kt:34:9:34:36 | LateInit test1 | LocalVariableDecl | lateinit |
| modifiers.kt:28:12:28:39 | fn6 | Method | inline |
| modifiers.kt:28:12:28:39 | fn6 | Method | public |
| modifiers.kt:28:17:28:25 | T | TypeVariable | reified |
| modifiers.kt:31:1:33:1 | Y | Class | final |
| modifiers.kt:31:1:33:1 | Y | Class | public |
| modifiers.kt:31:1:33:1 | Y | Constructor | public |
| modifiers.kt:31:1:33:1 | Y | GenericType | final |
| modifiers.kt:31:1:33:1 | Y | GenericType | public |
| modifiers.kt:31:1:33:1 | Y | ParameterizedType | final |
| modifiers.kt:31:1:33:1 | Y | ParameterizedType | public |
| modifiers.kt:31:9:31:13 | T1 | TypeVariable | in |
| modifiers.kt:31:16:31:21 | T2 | TypeVariable | out |
| modifiers.kt:32:5:32:32 | foo | Method | public |
| modifiers.kt:35:1:41:1 | LateInit | Class | final |
| modifiers.kt:35:1:41:1 | LateInit | Class | public |
| modifiers.kt:35:8:41:1 | LateInit | Constructor | public |
| modifiers.kt:36:5:36:40 | test0 | Field | private |
| modifiers.kt:36:5:36:40 | test0 | Property | lateinit |
| modifiers.kt:36:5:36:40 | test0 | Property | private |
| modifiers.kt:36:22:36:40 | getTest0$private | Method | private |
| modifiers.kt:36:22:36:40 | setTest0$private | Method | private |
| modifiers.kt:38:5:40:5 | fn | Method | public |
| modifiers.kt:39:9:39:36 | LateInit test1 | LocalVariableDecl | lateinit |

View File

@@ -25,6 +25,11 @@ open class X {
inline fun fn4(noinline f: () -> Unit) { }
inline fun fn5(crossinline f: () -> Unit) { }
inline fun <reified T> fn6(x: T) {}
}
class Y<in T1, out T2> {
fun foo(t: T1) : T2 = null!!
}
public class LateInit {