Synthetic extensions for non-public get/set java methods

This commit is contained in:
Valentin Kipyatkov
2015-07-29 18:15:27 +03:00
parent d5f95cf126
commit c3064e2b0f
8 changed files with 84 additions and 35 deletions
@@ -1,10 +1,14 @@
// FILE: KotlinFile.kt
package k
import JavaClass
fun foo(javaClass: JavaClass) {
javaClass.somethingPublic
javaClass.<!UNRESOLVED_REFERENCE!>somethingProtected<!>
javaClass.<!INVISIBLE_MEMBER!>somethingProtected<!>
javaClass.<!UNRESOLVED_REFERENCE!>somethingPrivate<!>
javaClass.<!UNRESOLVED_REFERENCE!>somethingPackage<!>
<!VAL_REASSIGNMENT!>javaClass.somethingPublic<!> = 1
javaClass.<!INVISIBLE_MEMBER!>somethingPackage<!>
<!INVISIBLE_SETTER!>javaClass.somethingPublic<!> = 1
}
// FILE: JavaClass.java
@@ -1,7 +1,5 @@
package
internal fun foo(/*0*/ javaClass: JavaClass): kotlin.Unit
public open class JavaClass {
public constructor JavaClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
@@ -13,3 +11,7 @@ public open class JavaClass {
protected/*protected and package*/ open fun setSomethingPublic(/*0*/ value: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
package k {
internal fun foo(/*0*/ javaClass: JavaClass): kotlin.Unit
}
@@ -0,0 +1,16 @@
// FILE: KotlinFile.kt
package k
import JavaClass
fun foo(javaClass: JavaClass) {
val <!UNUSED_VARIABLE!>v<!> = javaClass.<!INVISIBLE_MEMBER!>something<!>
javaClass.<!INVISIBLE_MEMBER!>something<!> = 1
javaClass.<!INVISIBLE_MEMBER!>something<!>++
}
// FILE: JavaClass.java
public class JavaClass {
protected int getSomething() { return 1; }
public void setSomething(int value) {}
}
@@ -0,0 +1,14 @@
package
public open class JavaClass {
public constructor JavaClass()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
protected/*protected and package*/ open fun getSomething(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open fun setSomething(/*0*/ value: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
package k {
internal fun foo(/*0*/ javaClass: JavaClass): kotlin.Unit
}