mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 08:31:26 +00:00
There are cases when members deserialized from JVM classes have no JVM signature in the proto. For example, if a member is inherited from a built-in class (such as Map.getOrDefault in some Map implementations), or if a member is synthesized in the compiler front-end and back-end separately (such as enum values/valueOf). In these cases, we'll use the naive type mapping to try to recover the signature. #KT-16616 Fixed #KT-17542 Fixed
26 lines
865 B
Kotlin
Vendored
26 lines
865 B
Kotlin
Vendored
// IGNORE_BACKEND: JVM_IR, JS_IR, JS, NATIVE
|
|
// FULL_JDK
|
|
// WITH_REFLECT
|
|
|
|
import kotlin.test.assertEquals
|
|
import java.util.*
|
|
|
|
fun assertToString(s: String, x: Any) {
|
|
assertEquals(s, x.toString())
|
|
}
|
|
|
|
fun box(): String {
|
|
assertToString("fun kotlin.collections.Map<K, V>.getOrDefault(K, V): V", Map<*, *>::getOrDefault)
|
|
assertToString("fun java.util.HashMap<K, V>.getOrDefault(K, V): V", HashMap<*, *>::getOrDefault)
|
|
|
|
// TODO: uncomment once KT-11754 is fixed
|
|
// assertToString("", MutableList<*>::removeAt)
|
|
|
|
assertToString("fun kotlin.collections.Collection<E>.contains(E): kotlin.Boolean", Collection<*>::contains)
|
|
assertToString("fun kotlin.collections.Set<E>.contains(E): kotlin.Boolean", Set<*>::contains)
|
|
|
|
assertToString("fun kotlin.collections.Collection<E>.isEmpty(): kotlin.Boolean", Collection<*>::isEmpty)
|
|
|
|
return "OK"
|
|
}
|