mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-16 08:31:35 +00:00
After this change SAM adapters are being resolved in the same group as members, thus their overload resolution happens simultaneously. But in the case of overload resolution ambiguity try to filter out all synthetic members and run the process again. See the issue and new test for clarification #KT-11128 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.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 }
|
|
}
|