Files
kotlin/compiler/testData/codegen/bytecodeText/builtinFunctions/genericParameterBridge/abstractList.kt
Denis Zharkov fa99ea1e98 Generate type-safe barrier in method body
In cases when signature of special bridge is the same as current method,
but type is not 'Any?'.

Also there is tiny optimization:
only null check needed if value parameter type is mapped to Object,
but it's not nullable.

 #KT-9973 Fixed
2015-11-17 16:27:02 +03:00

31 lines
1.1 KiB
Kotlin
Vendored

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()
}
}
// 0 signature \(TW;\)Z
// 2 signature \(Ljava/util/Collection<\+Ljava/lang/Object;>;\)Z
// 2 public final bridge contains\(Ljava/lang/Object;\)Z
// 2 public final bridge remove\(Ljava/lang/Object;\)Z
// 2 public final bridge indexOf\(Ljava/lang/Object;\)I
// 2 public final bridge lastIndexOf\(Ljava/lang/Object;\)I
/* 2 INSTANCEOF for each class: one for 'remove', one for 'contains' type-safe bridges */
// 8 INSTANCEOF java/lang/String