JS: fix translation of callable reference to property of outer class with private setter

This commit is contained in:
Alexey Andreev
2017-01-24 19:35:11 +03:00
parent d35ddc1017
commit 119bf52adf
7 changed files with 89 additions and 1 deletions
@@ -0,0 +1,31 @@
class A {
var value: String = "fail1"
private set
inner class B {
fun foo(): kotlin.reflect.KMutableProperty0<String> = this@A::value
}
}
class C {
var value: String = "fail2"
private set
fun bar(): kotlin.reflect.KMutableProperty0<String> {
class D {
fun foo(): kotlin.reflect.KMutableProperty0<String> = this@C::value
}
return D().foo()
}
}
fun box(): String {
val a = A()
a.B().foo().set("O")
val c = C()
c.bar().set("K")
return a.value + c.value
}
@@ -0,0 +1,30 @@
@kotlin.Metadata
public final class A {
private @org.jetbrains.annotations.NotNull field value: java.lang.String
inner class A/B
public method <init>(): void
public final @org.jetbrains.annotations.NotNull method getValue(): java.lang.String
private final method setValue(p0: java.lang.String): void
}
@kotlin.Metadata
public final class A/B {
synthetic final field this$0: A
inner class A/B
public method <init>(p0: A): void
public final @org.jetbrains.annotations.NotNull method foo(): kotlin.reflect.KMutableProperty0
}
@kotlin.Metadata
public final class C {
private @org.jetbrains.annotations.NotNull field value: java.lang.String
public method <init>(): void
public final @org.jetbrains.annotations.NotNull method bar(): kotlin.reflect.KMutableProperty0
public final @org.jetbrains.annotations.NotNull method getValue(): java.lang.String
private final method setValue(p0: java.lang.String): void
}
@kotlin.Metadata
public final class PrivateSetOuterClassKt {
public final static @org.jetbrains.annotations.NotNull method box(): java.lang.String
}