[FIR] Improve TYPE_PARAMETER_AS_REIFIED detecting, implement TYPE_PARAMETER_AS_REIFIED_ARRAY, TYPE_PARAMETER_AS_REIFIED_ARRAY_WARNING
This commit is contained in:
committed by
teamcityserver
parent
2333b1bcf6
commit
bade6cb611
@@ -50,6 +50,6 @@ fun test6() = foo<Nothing>()
|
||||
|
||||
class B<T>(val array: Array<T>)
|
||||
|
||||
fun <T> bar() = B<Array<T>>(arrayOf())
|
||||
fun <T> bar() = B<Array<T>>(<!TYPE_PARAMETER_AS_REIFIED_ARRAY!>arrayOf<!>())
|
||||
|
||||
fun test7() = bar<Nothing>()
|
||||
|
||||
-17
@@ -1,17 +0,0 @@
|
||||
|
||||
fun <T> fail1(): Array<T> = Array(1) { null!! }
|
||||
fun <T> ok1(block: () -> Array<T>): Array<T> = block()
|
||||
inline fun <reified T> ok2(): Array<T> = Array(1) { null!! }
|
||||
|
||||
|
||||
fun <T> fail2(): Array<T> = ok1 { Array<T>(1) { null!! } }
|
||||
fun <T> ok3(block: () -> Array<T>): Array<T> = ok1 { block() }
|
||||
inline fun <reified T> ok4(): Array<T> = ok1 { Array<T>(1) { null!! } }
|
||||
|
||||
fun <T> fail3(block: () -> T): Pair<Array<T>, Array<T>> = Pair(arrayOf(
|
||||
block()), arrayOf()
|
||||
)
|
||||
inline fun <reified T> ok5(block: () -> T): Pair<Array<T>, Array<T>> = Pair(
|
||||
arrayOf(block()), arrayOf()
|
||||
)
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
fun <T> fail1(): Array<T> = <!TYPE_PARAMETER_AS_REIFIED!>Array<!>(1) { null!! }
|
||||
fun <T> ok1(block: () -> Array<T>): Array<T> = block()
|
||||
|
||||
-14
@@ -1,14 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
fun <T> foo() {
|
||||
val x = arrayOfNulls<T>(5)
|
||||
}
|
||||
|
||||
inline fun <reified T> bar() {
|
||||
val x = arrayOfNulls<T>(5)
|
||||
}
|
||||
|
||||
fun baz() {
|
||||
bar<Int>()
|
||||
val x: Array<Int?> = arrayOfNulls(5)
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
fun <T> foo() {
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
class Inv<T>
|
||||
|
||||
inline operator fun <reified T> Inv<T>.invoke() {}
|
||||
|
||||
operator fun <K> Inv<K>.get(i: Int): Inv<K> = this
|
||||
|
||||
fun <K> test(a: Inv<K>) {
|
||||
a[1]()
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
class Inv<T>
|
||||
|
||||
inline operator fun <reified T> Inv<T>.invoke() {}
|
||||
|
||||
Reference in New Issue
Block a user