Files
kotlin-fork/compiler/testData/diagnostics/tests/targetedBuiltIns/forEachRemainingNullability.fir.kt
T
simon.ogorodnik 34e6649d31 [FIR] Harden check of argument type properly
Before this commit, nullable argument could match not null parameter.
Now we require also correct nullability that breaks some cases
2020-02-03 16:45:18 +03:00

42 lines
1.1 KiB
Kotlin
Vendored

// FULL_JDK
import java.util.function.Consumer
abstract class MyIt1<out T> : Iterator<T> {
override fun forEachRemaining(x: Consumer<in T>) {}
}
abstract class MyIt2<out T> : Iterator<T> {
override fun forEachRemaining(x: Consumer<in T?>) {}
}
abstract class MyIt3<out T> : Iterator<T> {
override fun forEachRemaining(x: Consumer<in T>?) {}
}
abstract class MyIt4 : Iterator<String?> {
override fun forEachRemaining(x: Consumer<in String?>) {}
}
abstract class MyIt5 : Iterator<String> {
override fun forEachRemaining(x: Consumer<in String>) {}
}
abstract class MyIt6 : Iterator<String?> {
override fun forEachRemaining(x: Consumer<in String>) {}
}
abstract class MyIt7 : Iterator<String> {
override fun forEachRemaining(x: Consumer<in String?>) {}
}
fun foo(x: Iterator<String>, y: Iterator<String?>) {
x.<!INAPPLICABLE_CANDIDATE!>forEachRemaining<!>(null)
x.forEachRemaining { it -> it.length }
x.forEachRemaining { it -> it?.length }
y.forEachRemaining { it -> it.<!INAPPLICABLE_CANDIDATE!>length<!> }
y.forEachRemaining { it -> it?.length }
}