Type variable with non-trivial upper bound cannot capture 'in' projection
This commit is contained in:
+16
@@ -0,0 +1,16 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
|
||||
// !CHECK_TYPE
|
||||
|
||||
fun <T: Any> bar(a: Array<T>): Array<T?> = null!!
|
||||
|
||||
fun test1(a: Array<in Int>) {
|
||||
val r: Array<in Int?> = <!TYPE_INFERENCE_CANNOT_CAPTURE_TYPES!>bar<!>(a)
|
||||
<!TYPE_INFERENCE_CANNOT_CAPTURE_TYPES!>bar<!>(a)
|
||||
}
|
||||
|
||||
fun <T: Any> foo(l: Array<T>): Array<Array<T?>> = null!!
|
||||
|
||||
fun test2(a: Array<in Int>) {
|
||||
val r: Array<out Array<in Int?>> = <!TYPE_INFERENCE_CANNOT_CAPTURE_TYPES!>foo<!>(a)
|
||||
<!TYPE_INFERENCE_CANNOT_CAPTURE_TYPES!>foo<!>(a)
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package
|
||||
|
||||
internal fun </*0*/ T : kotlin.Any> bar(/*0*/ a: kotlin.Array<T>): kotlin.Array<T?>
|
||||
internal fun </*0*/ T : kotlin.Any> foo(/*0*/ l: kotlin.Array<T>): kotlin.Array<kotlin.Array<T?>>
|
||||
internal fun test1(/*0*/ a: kotlin.Array<in kotlin.Int>): kotlin.Unit
|
||||
internal fun test2(/*0*/ a: kotlin.Array<in kotlin.Int>): kotlin.Unit
|
||||
Reference in New Issue
Block a user