Keep inline transformation invariant: all captured parameters stored in topmost lambda/object

Fix for KT-8668: java.lang.ClassFormatError: Duplicate field name&signature (based on property access)

  #KT-8668 Fixed
This commit is contained in:
Michael Bogdanov
2015-11-18 11:56:33 +03:00
parent 93eb09a654
commit d4369c1df9
53 changed files with 1056 additions and 18 deletions
@@ -0,0 +1,24 @@
package test
class A {
val param = "start"
var result = "fail"
var addParam = "_additional_"
inline fun inlineFun(arg: String, crossinline f: (String) -> Unit) {
{
f(arg + addParam)
}()
}
fun box(): String {
inlineFun("2") { a ->
{
result = param + a
}()
}
return if (result == "start2_additional_") "OK" else "fail: $result"
}
}