Use accessible get/set arguments for collection element receiver

When generating collection element receiver (such as 'a[i]'), accessible
descriptor for get/set operator should be used.
Otherwise, if the corresponding get/set operator fun is called via an
accessor, its argument types may be different in case of generic fun
specialized with primitive types.

 #KT-20387 Fixed
This commit is contained in:
Dmitry Petrov
2017-09-28 11:31:19 +03:00
parent 3994034f46
commit f4f1ea91d9
6 changed files with 44 additions and 1 deletions
@@ -0,0 +1,17 @@
// FILE: test.kt
import base.*
class Derived : Base<Long>() {
inner class Inner {
fun foo() = this@Derived[0L]
}
}
fun box() = Derived().Inner().foo()
// FILE: Base.kt
package base
open class Base<K> {
protected operator fun get(key: K) = "OK"
}