Initial implementation of synthetic extensions resolve
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
// FILE: KotlinFile.kt
|
||||
open class KotlinClass1 : JavaClass1() {
|
||||
fun getSomethingKotlin1(): Int = 1
|
||||
}
|
||||
|
||||
class KotlinClass2 : JavaClass2() {
|
||||
fun getSomethingKotlin2(): Int = 1
|
||||
}
|
||||
|
||||
fun foo(k: KotlinClass2) {
|
||||
useInt(k.getSomething1())
|
||||
useInt(k.something1)
|
||||
useInt(k.getSomething2())
|
||||
useInt(k.something2)
|
||||
useInt(k.getSomethingKotlin1())
|
||||
useInt(k.getSomethingKotlin2())
|
||||
k.<!UNRESOLVED_REFERENCE!>somethingKotlin1<!>
|
||||
k.<!UNRESOLVED_REFERENCE!>somethingKotlin2<!>
|
||||
}
|
||||
|
||||
fun useInt(<!UNUSED_PARAMETER!>i<!>: Int) {}
|
||||
|
||||
// FILE: JavaClass1.java
|
||||
public class JavaClass1 {
|
||||
public int getSomething1() { return 1; }
|
||||
}
|
||||
|
||||
// FILE: JavaClass2.java
|
||||
public class JavaClass2 extends KotlinClass1 {
|
||||
public int getSomething2() { return 1; }
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ k: KotlinClass2): kotlin.Unit
|
||||
internal fun useInt(/*0*/ i: kotlin.Int): kotlin.Unit
|
||||
|
||||
public open class JavaClass1 {
|
||||
public constructor JavaClass1()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open fun getSomething1(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public open class JavaClass2 : KotlinClass1 {
|
||||
public constructor JavaClass2()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun getSomething1(): kotlin.Int
|
||||
public open fun getSomething2(): kotlin.Int
|
||||
internal final override /*1*/ /*fake_override*/ fun getSomethingKotlin1(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal open class KotlinClass1 : JavaClass1 {
|
||||
public constructor KotlinClass1()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun getSomething1(): kotlin.Int
|
||||
internal final fun getSomethingKotlin1(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal final class KotlinClass2 : JavaClass2 {
|
||||
public constructor KotlinClass2()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun getSomething1(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun getSomething2(): kotlin.Int
|
||||
internal final override /*1*/ /*fake_override*/ fun getSomethingKotlin1(): kotlin.Int
|
||||
internal final fun getSomethingKotlin2(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
// FILE: KotlinFile.kt
|
||||
import java.io.File
|
||||
|
||||
fun foo(file: File) {
|
||||
file.absolutePath.length()
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ file: java.io.File): kotlin.Unit
|
||||
@@ -0,0 +1,14 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>something1<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>something2<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>somethingStatic<!>
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public int getSomething1(int p) { return p; }
|
||||
public <T> T getSomething2() { return null; }
|
||||
|
||||
public static int getSomethingStatic() { return 1; }
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
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
|
||||
public open fun getSomething1(/*0*/ p: kotlin.Int): kotlin.Int
|
||||
public open fun </*0*/ T> getSomething2(): T!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public open fun getSomethingStatic(): kotlin.Int
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass) {
|
||||
<!VAL_REASSIGNMENT!>javaClass.something1<!>++
|
||||
<!VAL_REASSIGNMENT!>javaClass.something2<!>++
|
||||
<!VAL_REASSIGNMENT!>javaClass.something3<!>++
|
||||
<!VAL_REASSIGNMENT!>javaClass.something4<!>++
|
||||
<!VAL_REASSIGNMENT!>javaClass.something5<!>++
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public int getSomething1() { return 1; }
|
||||
public void setSomething1(int value, char c) { }
|
||||
|
||||
public int getSomething2() { return 1; }
|
||||
public void setSomething2(String value) { }
|
||||
|
||||
public int getSomething3() { return 1; }
|
||||
public int setSomething3(int value) { return value; }
|
||||
|
||||
public int getSomething4() { return 1; }
|
||||
public <T> void setSomething4(int value) { return value; }
|
||||
|
||||
public int getSomething5() { return 1; }
|
||||
public static void setSomething5(int value) { }
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
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
|
||||
public open fun getSomething1(): kotlin.Int
|
||||
public open fun getSomething2(): kotlin.Int
|
||||
public open fun getSomething3(): kotlin.Int
|
||||
public open fun getSomething4(): kotlin.Int
|
||||
public open fun getSomething5(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open fun setSomething1(/*0*/ value: kotlin.Int, /*1*/ c: kotlin.Char): kotlin.Unit
|
||||
public open fun setSomething2(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public open fun setSomething3(/*0*/ value: kotlin.Int): kotlin.Int
|
||||
public open fun </*0*/ T> setSomething4(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public open fun setSomething5(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass<String>) {
|
||||
javaClass.something += "x"
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass<T> {
|
||||
public T getSomething() { return null; }
|
||||
public void setSomething(T value) { }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ javaClass: JavaClass<kotlin.String>): kotlin.Unit
|
||||
|
||||
public open class JavaClass</*0*/ T> {
|
||||
public constructor JavaClass</*0*/ T>()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open fun getSomething(): T!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open fun setSomething(/*0*/ value: T!): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
// FILE: KotlinFile.kt
|
||||
class KotlinClass {
|
||||
fun getSomething(): Int = 1
|
||||
}
|
||||
|
||||
fun foo(javaClass: JavaClass, kotlinClass: KotlinClass) {
|
||||
useInt(javaClass.getSomething())
|
||||
useInt(javaClass.something)
|
||||
<!VAL_REASSIGNMENT!>javaClass.something<!> = 1
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>Something<!>
|
||||
useInt(kotlinClass.getSomething())
|
||||
kotlinClass.<!UNRESOLVED_REFERENCE!>something<!>
|
||||
}
|
||||
|
||||
fun useInt(<!UNUSED_PARAMETER!>i<!>: Int) {}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public int getSomething() { return 1; }
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ javaClass: JavaClass, /*1*/ kotlinClass: KotlinClass): kotlin.Unit
|
||||
internal fun useInt(/*0*/ i: kotlin.Int): kotlin.Unit
|
||||
|
||||
public open class JavaClass {
|
||||
public constructor JavaClass()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open fun getSomething(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal final class KotlinClass {
|
||||
public constructor KotlinClass()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
internal final fun getSomething(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.something++
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public int getSomething() { return 1; }
|
||||
public void setSomething(int value) { }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
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
|
||||
public 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
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun JavaClass.foo() {
|
||||
useInt(getSomething())
|
||||
useInt(something)
|
||||
}
|
||||
|
||||
fun useInt(<!UNUSED_PARAMETER!>i<!>: Int) {}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public int getSomething() { return 1; }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package
|
||||
|
||||
internal fun useInt(/*0*/ i: kotlin.Int): kotlin.Unit
|
||||
internal fun JavaClass.foo(): kotlin.Unit
|
||||
|
||||
public open class JavaClass {
|
||||
public constructor JavaClass()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open fun getSomething(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.somethingPublic
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>somethingProtected<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>somethingPrivate<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>somethingPackage<!>
|
||||
<!VAL_REASSIGNMENT!>javaClass.somethingPublic<!> = 1
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public int getSomethingPublic() { return 1; }
|
||||
protected int getSomethingProtected() { return 1; }
|
||||
private int getSomethingPrivate() { return 1; }
|
||||
int getSomethingPackage() { return 1; }
|
||||
|
||||
protected void setSomethingPublic(int value) {}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
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
|
||||
public/*package*/ open fun getSomethingPackage(): kotlin.Int
|
||||
private open fun getSomethingPrivate(): kotlin.Int
|
||||
protected/*protected and package*/ open fun getSomethingProtected(): kotlin.Int
|
||||
public open fun getSomethingPublic(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
protected/*protected and package*/ open fun setSomethingPublic(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>something<!> = 1
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public void setSomething(int value) { }
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
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
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user