82ccf81da8
Inner class constructors should use the argument instead of reading outer `this` from a field because if such an access happens before a delegating constructor call, e.g. when evaluating an argument, a JVM bytecode validation error will be thrown. (The only operation on `this` allowed before a delegating constructor call is SETFIELD, and only if the field in question is declared in the same class.)
16 lines
261 B
Kotlin
Vendored
16 lines
261 B
Kotlin
Vendored
fun String.bar(): String {
|
|
open class Local {
|
|
fun result() = this@bar
|
|
}
|
|
|
|
class Outer {
|
|
inner class Inner : Local() {
|
|
fun outer() = this@Outer
|
|
}
|
|
}
|
|
|
|
return Outer().Inner().result()
|
|
}
|
|
|
|
fun box() = "OK".bar()
|