44caa3cdd5
Motivation of using dispatch receiver type when calculating method owner was discussed here: https://github.com/JetBrains/kotlin/pull/3054 However, this is incompatible with type erasure of non-reified type parameters on inlining (which will be done in future). Consider the code: ``` inline fun <T> f(arr: Array<T>, p: (T) -> Int): Int = p(arr[0]) fun box() = f(arrayOf("abacaba"), String::length) ``` After inlining and erasure, the type of `arr[0]` is `Any`. Thus, when calculating owner of `String::length` we would have `Any` instead of `String` if we used dispatch receiver type. Note, that this change affects bytecode instruction that invokes method, but does not change which method is being invoked.