9bf2538e4c
It can be used to specify enhanced signature for standard JDK methods without them be actually annotated #KT-9194 In Progress #KT-5175 In Progress #KT-10370 In Progress #KT-7127 In Progress
40 lines
1.2 KiB
Kotlin
Vendored
40 lines
1.2 KiB
Kotlin
Vendored
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> {
|
|
<!NOTHING_TO_OVERRIDE!>override<!> fun forEachRemaining(x: Consumer<in T?>) {}
|
|
}
|
|
|
|
abstract class MyIt3<out T> : Iterator<T> {
|
|
<!NOTHING_TO_OVERRIDE!>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?> {
|
|
<!NOTHING_TO_OVERRIDE!>override<!> fun forEachRemaining(x: Consumer<in String>) {}
|
|
}
|
|
|
|
abstract class MyIt7 : Iterator<String> {
|
|
<!NOTHING_TO_OVERRIDE!>override<!> fun forEachRemaining(x: Consumer<in String?>) {}
|
|
}
|
|
|
|
|
|
fun foo(x: Iterator<String>, y: Iterator<String?>) {
|
|
x.<!TYPE_INFERENCE_INCORPORATION_ERROR!>forEachRemaining<!>(<!NULL_FOR_NONNULL_TYPE!>null<!>)
|
|
|
|
x.forEachRemaining { it -> it.length }
|
|
x.forEachRemaining { it -> it<!UNNECESSARY_SAFE_CALL!>?.<!>length }
|
|
y.forEachRemaining { it -> it<!UNSAFE_CALL!>.<!>length }
|
|
y.forEachRemaining { it -> it?.length }
|
|
}
|