mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 08:31:26 +00:00
Customize JVM signature for Collection's members
- Do not write signature for `contains` - Write signature for `containsAll` as it's declared like `containsAll(Collection<?>)`
This commit is contained in:
110
compiler/testData/codegen/bytecodeText/builtinFunctions/contains.kt
vendored
Normal file
110
compiler/testData/codegen/bytecodeText/builtinFunctions/contains.kt
vendored
Normal file
@@ -0,0 +1,110 @@
|
||||
abstract class A1<Q> : MutableCollection<Q> {
|
||||
override fun contains(o: Q): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun containsAll(c: Collection<Q>): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
abstract class A2 : MutableCollection<String> {
|
||||
override fun contains(o: String): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun containsAll(c: Collection<String>): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
abstract class A3<W> : java.util.AbstractList<W>()
|
||||
abstract class A4<W> : java.util.AbstractList<W>() {
|
||||
override fun contains(o: W): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun containsAll(c: Collection<W>): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
abstract class A5 : java.util.AbstractList<String>()
|
||||
abstract class A6 : java.util.AbstractList<String>() {
|
||||
override fun contains(o: String): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun containsAll(c: Collection<String>): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
interface I1<R> : MutableSet<R> {
|
||||
override fun contains(o: R): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun containsAll(c: Collection<R>): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
interface I2 : MutableSet<String> {
|
||||
override fun contains(o: String): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
|
||||
override fun containsAll(c: Collection<String>): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
abstract class A7 : MutableCollection<Int> {
|
||||
override fun contains(o: Int): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
abstract class A8 : MutableCollection<Any?> {
|
||||
override fun contains(o: Any?): Boolean {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun foo(
|
||||
a1: A1<String>,
|
||||
a2: A2,
|
||||
a3: A3<String>,
|
||||
a4: A4<String>,
|
||||
a5: A5,
|
||||
a6: A6,
|
||||
a7: A7,
|
||||
i1: I1<String>,
|
||||
i2: I2,
|
||||
c: Collection<String>
|
||||
) {
|
||||
a1.contains("")
|
||||
a2.contains("")
|
||||
a3.contains("")
|
||||
a4.contains("")
|
||||
a5.contains("")
|
||||
a6.contains("")
|
||||
a7.contains(1)
|
||||
i1.contains("")
|
||||
i2.contains("")
|
||||
c.contains("")
|
||||
}
|
||||
|
||||
// 0 signature \(TQ;\)Z
|
||||
// 0 signature \(TW;\)Z
|
||||
// 0 signature \(TR;\)Z
|
||||
// 6 signature \(Ljava/util/Collection<\+Ljava/lang/Object;>;\)Z
|
||||
// 3 public final bridge contains\(Ljava/lang/Object;\)Z
|
||||
// 4 INVOKEVIRTUAL A[0-9]\.contains \(Ljava/lang/String;\)Z
|
||||
// 4 INVOKEVIRTUAL A[0-9]\.contains \(Ljava/lang/Object;\)Z
|
||||
// 2 INVOKEVIRTUAL A7\.contains \(I\)Z
|
||||
// 1 INVOKEINTERFACE java/util/Collection.contains \(Ljava/lang/Object;\)Z
|
||||
// 1 INVOKEINTERFACE I1.contains \(Ljava/lang/Object;\)Z
|
||||
// 1 INVOKEINTERFACE I2.contains \(Ljava/lang/String;\)Z
|
||||
Reference in New Issue
Block a user