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
This commit is contained in:
Denis Zharkov
2015-11-16 13:02:45 +03:00
parent 1f704e0c4d
commit fa99ea1e98
14 changed files with 226 additions and 29 deletions
@@ -0,0 +1,11 @@
abstract class A<T : Any> : MutableCollection<T> {
override fun contains(o: T): Boolean {
throw UnsupportedOperationException()
}
}
// 1 bridge
// 1 public final bridge size
// 0 INSTANCEOF
/* Only 1 IFNONNULL should be within contains method (because T is not nullable) */
// 1 IFNONNULL