Files
Dmitry Petrov b5f37d18b2 Fix inlining of functions with matching JVM signatures in same package
When two functions with matching JVM signatures in the same package
were inlined sequentially, inliner could take a wrong method body from
the cache due to MethodId clash. This manifested with inline classes,
but also was possible with some legal Kotlin overloads with matching
erasure.

Use internal name of the corresponding implementation owner class
instead of FQN of the containing declaration. Such MethodIds can't match
accidentally, because corresponding JVM method signatures would clash.
2018-08-20 14:12:34 +03:00

8 lines
197 B
Kotlin
Vendored

import lib.*
fun run() {
val test1 = 42.toString(10)
val test2 = J(42).toString(10)
if (test1 != "42") throw AssertionError(test1)
if (test2 != "J42") throw AssertionError(test2)
}