[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
@@ -1,13 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
inline operator fun <reified T> T.plus(p: T): T = this
|
||||
|
||||
inline operator fun <reified T> T.invoke(): T = this
|
||||
|
||||
fun <A> main(tp: A, any: Any) {
|
||||
tp + tp
|
||||
any + any
|
||||
|
||||
tp()
|
||||
any()
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
inline operator fun <reified T> T.plus(p: T): T = this
|
||||
|
||||
Vendored
-19
@@ -1,19 +0,0 @@
|
||||
// !LANGUAGE: +ProhibitNonReifiedArraysAsReifiedTypeArguments
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
inline fun <reified T> foo() {}
|
||||
|
||||
fun <T> bar() {
|
||||
foo<T>()
|
||||
foo<Array<T>>()
|
||||
foo<Array<Array<T>>>()
|
||||
foo<Array<Int>>()
|
||||
foo<Array<Array<Int>>>()
|
||||
foo<IntArray>()
|
||||
foo<List<T>>()
|
||||
foo<List<Array<T>>>()
|
||||
}
|
||||
|
||||
fun test(x: Array<String>, y: Array<*>) {
|
||||
bar<Int>()
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +ProhibitNonReifiedArraysAsReifiedTypeArguments
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
|
||||
compiler/testData/diagnostics/tests/generics/tpAsReified/GenericArrayAsReifiedArgumentWarning.fir.kt
Vendored
-19
@@ -1,19 +0,0 @@
|
||||
// !LANGUAGE: -ProhibitNonReifiedArraysAsReifiedTypeArguments
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
inline fun <reified T> foo() {}
|
||||
|
||||
fun <T> bar() {
|
||||
foo<T>()
|
||||
foo<Array<T>>()
|
||||
foo<Array<Array<T>>>()
|
||||
foo<Array<Int>>()
|
||||
foo<Array<Array<Int>>>()
|
||||
foo<IntArray>()
|
||||
foo<List<T>>()
|
||||
foo<List<Array<T>>>()
|
||||
}
|
||||
|
||||
fun test(x: Array<String>, y: Array<*>) {
|
||||
bar<Int>()
|
||||
}
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -ProhibitNonReifiedArraysAsReifiedTypeArguments
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
class C<<!REIFIED_TYPE_PARAMETER_NO_INLINE!>reified<!> T>
|
||||
|
||||
fun <T> id(p: T): T = p
|
||||
|
||||
fun <A> main() {
|
||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>C<!>()
|
||||
|
||||
val a: C<A> = C()
|
||||
C<A>()
|
||||
|
||||
val b: C<Int> = C()
|
||||
C<Int>()
|
||||
|
||||
// TODO svtk, uncomment when extensions are called for nested calls!
|
||||
//val < !UNUSED_VARIABLE!>с< !>: C<A> = id(< !TYPE_PARAMETER_AS_REIFIED!>C< !>())
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
class C<<!REIFIED_TYPE_PARAMETER_NO_INLINE!>reified<!> T>
|
||||
|
||||
fun <T> id(p: T): T = p
|
||||
|
||||
@@ -11,11 +11,11 @@ fun <T> id(p: T): T = p
|
||||
fun <A> main() {
|
||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>f<!>()
|
||||
|
||||
val a: A = f()
|
||||
f<A>()
|
||||
val a: A = <!TYPE_PARAMETER_AS_REIFIED!>f<!>()
|
||||
f<<!TYPE_PARAMETER_AS_REIFIED!>A<!>>()
|
||||
|
||||
val b: Int = f()
|
||||
f<Int>()
|
||||
|
||||
val с: A = id(f())
|
||||
val с: A = id(<!TYPE_PARAMETER_AS_REIFIED!>f<!>())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user