Iniital implementation of synthetic extensions for SAM-adapter functions (non-static only)
This commit is contained in:
+20
@@ -0,0 +1,20 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.url = javaClass.url + "/"
|
||||
javaClass.htmlFile += "1"
|
||||
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>URL<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>uRL<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>HTMLFile<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>hTMLFile<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>htmlfile<!>
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public String getURL() { return true; }
|
||||
public void setURL(String value) { }
|
||||
|
||||
public String getHTMLFile() { return true; }
|
||||
public void setHTMLFile(String value) { }
|
||||
}
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
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 getHTMLFile(): kotlin.String!
|
||||
public open fun getURL(): kotlin.String!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open fun setHTMLFile(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public open fun setURL(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
// FILE: KotlinFile.kt
|
||||
open class KotlinClass1 : JavaClass1() {
|
||||
public fun getSomethingKotlin1(): Int = 1
|
||||
}
|
||||
|
||||
class KotlinClass2 : JavaClass2() {
|
||||
public 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; }
|
||||
}
|
||||
+42
@@ -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
|
||||
public 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
|
||||
public 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
|
||||
public final override /*1*/ /*fake_override*/ fun getSomethingKotlin1(): kotlin.Int
|
||||
public 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
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
// FILE: KotlinFile.kt
|
||||
import java.io.File
|
||||
|
||||
fun foo(file: File) {
|
||||
file.absolutePath.length()
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ file: java.io.File): kotlin.Unit
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>something1<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>something2<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>somethingStatic<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>somethingVoid<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>ter<!>
|
||||
}
|
||||
|
||||
// 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; }
|
||||
|
||||
public void getSomethingVoid() { }
|
||||
|
||||
public int getter() { return 1; }
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
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 : kotlin.Any!> getSomething2(): T!
|
||||
public open fun getSomethingVoid(): kotlin.Unit
|
||||
public open fun getter(): kotlin.Int
|
||||
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
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
// 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<!>++
|
||||
<!VAL_REASSIGNMENT!>javaClass.something6<!> = null
|
||||
}
|
||||
|
||||
// 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) { }
|
||||
|
||||
public int[] getSomething6() { return null; }
|
||||
public void setSomething6(int... value) { }
|
||||
}
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
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 fun getSomething6(): kotlin.IntArray!
|
||||
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 : kotlin.Any!> setSomething4(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
public open fun setSomething6(/*0*/ vararg value: kotlin.Int /*kotlin.IntArray!*/): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
// Static members
|
||||
public open fun setSomething5(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
// FILE: KotlinFile.kt
|
||||
|
||||
interface C : A, B
|
||||
|
||||
fun foo(c: C) {
|
||||
c.setSomething(c.getSomething() + 1)
|
||||
c.something++
|
||||
}
|
||||
|
||||
// FILE: A.java
|
||||
public interface A {
|
||||
int getSomething();
|
||||
}
|
||||
|
||||
// FILE: B.java
|
||||
public interface B {
|
||||
int getSomething();
|
||||
void setSomething(int value);
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package
|
||||
|
||||
public /*synthesized*/ fun A(/*0*/ function: () -> kotlin.Int): A
|
||||
internal fun foo(/*0*/ c: C): kotlin.Unit
|
||||
|
||||
public interface A {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getSomething(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface B {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getSomething(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract fun setSomething(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal interface C : A, B {
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract override /*2*/ /*fake_override*/ fun getSomething(): kotlin.Int
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract override /*1*/ /*fake_override*/ fun setSomething(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+10
@@ -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) { }
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ javaClass: JavaClass<kotlin.String>): kotlin.Unit
|
||||
|
||||
public open class JavaClass</*0*/ T : kotlin.Any!> {
|
||||
public constructor JavaClass</*0*/ T : kotlin.Any!>()
|
||||
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
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
// FILE: KotlinFile.kt
|
||||
class KotlinClass {
|
||||
public 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; }
|
||||
}
|
||||
+20
@@ -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
|
||||
public 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
|
||||
}
|
||||
+10
@@ -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) { }
|
||||
}
|
||||
+12
@@ -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
|
||||
}
|
||||
+12
@@ -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; }
|
||||
}
|
||||
Vendored
+12
@@ -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
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.isSomething = !javaClass.isSomething
|
||||
javaClass.isSomething2 = !javaClass.isSomething2
|
||||
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>something<!>
|
||||
javaClass.<!FUNCTION_CALL_EXPECTED!>isSomethingWrong<!>
|
||||
javaClass.<!UNRESOLVED_REFERENCE!>somethingWrong<!>
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public boolean isSomething() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setSomething(boolean value) {
|
||||
}
|
||||
|
||||
public boolean getIsSomething2() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setIsSomething2(boolean value) {
|
||||
}
|
||||
|
||||
public int isSomethingWrong() {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
+15
@@ -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 getIsSomething2(): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open fun isSomething(): kotlin.Boolean
|
||||
public open fun isSomethingWrong(): kotlin.Int
|
||||
public open fun setIsSomething2(/*0*/ value: kotlin.Boolean): kotlin.Unit
|
||||
public open fun setSomething(/*0*/ value: kotlin.Boolean): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Vendored
+29
@@ -0,0 +1,29 @@
|
||||
// FILE: KotlinFile.kt
|
||||
open class KotlinClass {
|
||||
public open fun getSomething1(): Int = 1
|
||||
|
||||
public open fun setSomething2(value: Int) {}
|
||||
}
|
||||
|
||||
fun foo(javaClass: JavaClass) {
|
||||
useInt(javaClass.getSomething1())
|
||||
useInt(javaClass.<!UNRESOLVED_REFERENCE!>something1<!>)
|
||||
|
||||
javaClass.setSomething2(javaClass.getSomething2() + 1)
|
||||
javaClass.something2 = javaClass.something2 + 1
|
||||
}
|
||||
|
||||
fun useInt(<!UNUSED_PARAMETER!>i<!>: Int) {}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass extends KotlinClass implements JavaInterface {
|
||||
public int getSomething1() { return 1; }
|
||||
|
||||
public int getSomething2() { return 1; }
|
||||
public void setSomething2(int value) {}
|
||||
}
|
||||
|
||||
// FILE: JavaInterface.java
|
||||
public class JavaInterface {
|
||||
int getSomething2();
|
||||
}
|
||||
Vendored
+31
@@ -0,0 +1,31 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ javaClass: JavaClass): kotlin.Unit
|
||||
internal fun useInt(/*0*/ i: kotlin.Int): kotlin.Unit
|
||||
|
||||
public open class JavaClass : KotlinClass, JavaInterface {
|
||||
public constructor JavaClass()
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ fun getSomething1(): kotlin.Int
|
||||
public open override /*1*/ fun getSomething2(): kotlin.Int
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun setSomething2(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public open class JavaInterface {
|
||||
public constructor JavaInterface()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public/*package*/ open fun getSomething2(): 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 KotlinClass {
|
||||
public constructor KotlinClass()
|
||||
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 fun setSomething2(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Vendored
+52
@@ -0,0 +1,52 @@
|
||||
// FILE: KotlinFile.kt
|
||||
abstract class KotlinClass : JavaClass(), KotlinInterface, JavaInterface {
|
||||
override fun getSomething1(): Int = 1
|
||||
override fun getSomething3(): String = ""
|
||||
override fun setSomething4(value: String) {}
|
||||
override fun getSomething5(): String = ""
|
||||
}
|
||||
|
||||
interface KotlinInterface {
|
||||
public fun getSomething1(): Int
|
||||
public fun getSomething4(): String
|
||||
}
|
||||
|
||||
fun foo(k: KotlinClass) {
|
||||
useInt(k.getSomething1())
|
||||
useInt(k.something1)
|
||||
|
||||
useInt(k.getSomething2())
|
||||
useInt(k.something2)
|
||||
|
||||
useString(k.getSomething3())
|
||||
useString(k.something3)
|
||||
|
||||
k.setSomething4("")
|
||||
k.something4 += ""
|
||||
k.setSomething4(<!NULL_FOR_NONNULL_TYPE!>null<!>)
|
||||
k.something4 = null
|
||||
|
||||
useString(k.getSomething5())
|
||||
useString(k.something5)
|
||||
k.setSomething5(1)
|
||||
k.something5 = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>
|
||||
}
|
||||
|
||||
fun useInt(<!UNUSED_PARAMETER!>i<!>: Int) {}
|
||||
fun useString(<!UNUSED_PARAMETER!>i<!>: String) {}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public int getSomething1() { return 1; }
|
||||
public int getSomething2() { return 1; }
|
||||
public Object getSomething3() { return null; }
|
||||
}
|
||||
|
||||
// FILE: JavaInterface.java
|
||||
public interface JavaInterface {
|
||||
String getSomething4();
|
||||
void setSomething4(String value);
|
||||
|
||||
Object getSomething5();
|
||||
void setSomething5(Object value);
|
||||
}
|
||||
Vendored
+47
@@ -0,0 +1,47 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ k: KotlinClass): kotlin.Unit
|
||||
internal fun useInt(/*0*/ i: kotlin.Int): kotlin.Unit
|
||||
internal fun useString(/*0*/ i: kotlin.String): 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.Any!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface JavaInterface {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getSomething4(): kotlin.String!
|
||||
public abstract fun getSomething5(): kotlin.Any!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract fun setSomething4(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public abstract fun setSomething5(/*0*/ value: kotlin.Any!): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal abstract class KotlinClass : JavaClass, KotlinInterface, JavaInterface {
|
||||
public constructor KotlinClass()
|
||||
public open override /*3*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*2*/ fun getSomething1(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun getSomething2(): kotlin.Int
|
||||
public open override /*1*/ fun getSomething3(): kotlin.String
|
||||
public abstract override /*2*/ /*fake_override*/ fun getSomething4(): kotlin.String!
|
||||
public open override /*1*/ fun getSomething5(): kotlin.String
|
||||
public open override /*3*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ fun setSomething4(/*0*/ value: kotlin.String): kotlin.Unit
|
||||
public abstract override /*1*/ /*fake_override*/ fun setSomething5(/*0*/ value: kotlin.Any!): kotlin.Unit
|
||||
public open override /*3*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal interface KotlinInterface {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getSomething1(): kotlin.Int
|
||||
public abstract fun getSomething4(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Vendored
+25
@@ -0,0 +1,25 @@
|
||||
// FILE: KotlinFile.kt
|
||||
abstract class KotlinClass : JavaInterface1, JavaInterface2 {
|
||||
override fun getSomething(): String = ""
|
||||
}
|
||||
|
||||
fun foo(k: KotlinClass) {
|
||||
useString(k.getSomething())
|
||||
useString(k.something)
|
||||
if (<!SENSELESS_COMPARISON!>k.something == null<!>) return
|
||||
|
||||
k.setSomething(1)
|
||||
<!VAL_REASSIGNMENT!>k.something<!> = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>
|
||||
}
|
||||
|
||||
fun useString(<!UNUSED_PARAMETER!>i<!>: String) {}
|
||||
|
||||
// FILE: JavaInterface1.java
|
||||
public interface JavaInterface1 {
|
||||
String getSomething();
|
||||
}
|
||||
|
||||
// FILE: JavaInterface2.java
|
||||
public interface JavaInterface2 {
|
||||
void setSomething(int value);
|
||||
}
|
||||
Vendored
+29
@@ -0,0 +1,29 @@
|
||||
package
|
||||
|
||||
public /*synthesized*/ fun JavaInterface1(/*0*/ function: () -> kotlin.String!): JavaInterface1
|
||||
public /*synthesized*/ fun JavaInterface2(/*0*/ function: (kotlin.Int) -> kotlin.Unit): JavaInterface2
|
||||
internal fun foo(/*0*/ k: KotlinClass): kotlin.Unit
|
||||
internal fun useString(/*0*/ i: kotlin.String): kotlin.Unit
|
||||
|
||||
public interface JavaInterface1 {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getSomething(): kotlin.String!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface JavaInterface2 {
|
||||
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 abstract fun setSomething(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal abstract class KotlinClass : JavaInterface1, JavaInterface2 {
|
||||
public constructor KotlinClass()
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ fun getSomething(): kotlin.String
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract override /*1*/ /*fake_override*/ fun setSomething(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Vendored
+25
@@ -0,0 +1,25 @@
|
||||
// FILE: KotlinFile.kt
|
||||
abstract class KotlinClass : JavaInterface1, JavaInterface2 {
|
||||
override fun getSomething(): String = ""
|
||||
}
|
||||
|
||||
fun foo(k: KotlinClass) {
|
||||
useString(k.getSomething())
|
||||
useString(k.something)
|
||||
if (<!SENSELESS_COMPARISON!>k.something == null<!>) return
|
||||
|
||||
k.setSomething("")
|
||||
k.something = ""
|
||||
}
|
||||
|
||||
fun useString(<!UNUSED_PARAMETER!>i<!>: String) {}
|
||||
|
||||
// FILE: JavaInterface1.java
|
||||
public interface JavaInterface1 {
|
||||
String getSomething();
|
||||
}
|
||||
|
||||
// FILE: JavaInterface2.java
|
||||
public interface JavaInterface2 {
|
||||
void setSomething(String value);
|
||||
}
|
||||
Vendored
+29
@@ -0,0 +1,29 @@
|
||||
package
|
||||
|
||||
public /*synthesized*/ fun JavaInterface1(/*0*/ function: () -> kotlin.String!): JavaInterface1
|
||||
public /*synthesized*/ fun JavaInterface2(/*0*/ function: (kotlin.String!) -> kotlin.Unit): JavaInterface2
|
||||
internal fun foo(/*0*/ k: KotlinClass): kotlin.Unit
|
||||
internal fun useString(/*0*/ i: kotlin.String): kotlin.Unit
|
||||
|
||||
public interface JavaInterface1 {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getSomething(): kotlin.String!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface JavaInterface2 {
|
||||
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 abstract fun setSomething(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal abstract class KotlinClass : JavaInterface1, JavaInterface2 {
|
||||
public constructor KotlinClass()
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ fun getSomething(): kotlin.String
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract override /*1*/ /*fake_override*/ fun setSomething(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Vendored
+28
@@ -0,0 +1,28 @@
|
||||
// FILE: KotlinFile.kt
|
||||
abstract class KotlinClass : JavaInterface3 {
|
||||
override fun getSomething(): String = ""
|
||||
}
|
||||
|
||||
fun foo(k: KotlinClass) {
|
||||
useString(k.getSomething())
|
||||
useString(k.something)
|
||||
if (<!SENSELESS_COMPARISON!>k.something == null<!>) return
|
||||
|
||||
k.setSomething("")
|
||||
k.something = ""
|
||||
}
|
||||
|
||||
fun useString(<!UNUSED_PARAMETER!>i<!>: String) {}
|
||||
|
||||
// FILE: JavaInterface1.java
|
||||
public interface JavaInterface1 {
|
||||
String getSomething();
|
||||
}
|
||||
|
||||
// FILE: JavaInterface2.java
|
||||
public interface JavaInterface2 {
|
||||
void setSomething(String value);
|
||||
}
|
||||
|
||||
// FILE: JavaInterface3.java
|
||||
public interface JavaInterface3 extends JavaInterface1, JavaInterface2 {}
|
||||
Vendored
+37
@@ -0,0 +1,37 @@
|
||||
package
|
||||
|
||||
public /*synthesized*/ fun JavaInterface1(/*0*/ function: () -> kotlin.String!): JavaInterface1
|
||||
public /*synthesized*/ fun JavaInterface2(/*0*/ function: (kotlin.String!) -> kotlin.Unit): JavaInterface2
|
||||
internal fun foo(/*0*/ k: KotlinClass): kotlin.Unit
|
||||
internal fun useString(/*0*/ i: kotlin.String): kotlin.Unit
|
||||
|
||||
public interface JavaInterface1 {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getSomething(): kotlin.String!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface JavaInterface2 {
|
||||
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 abstract fun setSomething(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface JavaInterface3 : JavaInterface1, JavaInterface2 {
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract override /*1*/ /*fake_override*/ fun getSomething(): kotlin.String!
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract override /*1*/ /*fake_override*/ fun setSomething(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal abstract class KotlinClass : JavaInterface3 {
|
||||
public constructor KotlinClass()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ fun getSomething(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract override /*1*/ /*fake_override*/ fun setSomething(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Vendored
+29
@@ -0,0 +1,29 @@
|
||||
// FILE: KotlinFile.kt
|
||||
abstract class KotlinClass : JavaInterface3 {
|
||||
override fun getSomething(): String = ""
|
||||
}
|
||||
|
||||
fun foo(k: KotlinClass) {
|
||||
useString(k.getSomething())
|
||||
useString(k.something)
|
||||
if (<!SENSELESS_COMPARISON!>k.something == null<!>) return
|
||||
|
||||
k.setSomething("")
|
||||
k.something = ""
|
||||
}
|
||||
|
||||
fun useString(<!UNUSED_PARAMETER!>i<!>: String) {}
|
||||
|
||||
// FILE: JavaInterface1.java
|
||||
public interface JavaInterface1 {
|
||||
String getSomething();
|
||||
}
|
||||
|
||||
// FILE: JavaInterface2.java
|
||||
public interface JavaInterface2 {
|
||||
String getSomething();
|
||||
void setSomething(String value);
|
||||
}
|
||||
|
||||
// FILE: JavaInterface3.java
|
||||
public interface JavaInterface3 extends JavaInterface1, JavaInterface2 {}
|
||||
Vendored
+37
@@ -0,0 +1,37 @@
|
||||
package
|
||||
|
||||
public /*synthesized*/ fun JavaInterface1(/*0*/ function: () -> kotlin.String!): JavaInterface1
|
||||
internal fun foo(/*0*/ k: KotlinClass): kotlin.Unit
|
||||
internal fun useString(/*0*/ i: kotlin.String): kotlin.Unit
|
||||
|
||||
public interface JavaInterface1 {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getSomething(): kotlin.String!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface JavaInterface2 {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getSomething(): kotlin.String!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract fun setSomething(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface JavaInterface3 : JavaInterface1, JavaInterface2 {
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract override /*2*/ /*fake_override*/ fun getSomething(): kotlin.String!
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract override /*1*/ /*fake_override*/ fun setSomething(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal abstract class KotlinClass : JavaInterface3 {
|
||||
public constructor KotlinClass()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ fun getSomething(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract override /*1*/ /*fake_override*/ fun setSomething(/*0*/ value: kotlin.String!): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+18
@@ -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) {}
|
||||
}
|
||||
+15
@@ -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
|
||||
}
|
||||
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
// FILE: KotlinFile.kt
|
||||
|
||||
fun foo(o: JavaClass2) {
|
||||
useString(o.something)
|
||||
o.something = ""
|
||||
o.setSomething(1)
|
||||
o.something = <!CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!> // we generate extension property for JavaClass2 with more specific type
|
||||
o.something += "1"
|
||||
}
|
||||
|
||||
fun useString(<!UNUSED_PARAMETER!>i<!>: String) {}
|
||||
|
||||
// FILE: JavaClass1.java
|
||||
public class JavaClass1 {
|
||||
public Object getSomething() { return null; }
|
||||
public void setSomething(Object value) { }
|
||||
}
|
||||
|
||||
// FILE: JavaClass2.java
|
||||
public class JavaClass2 extends JavaClass1 {
|
||||
public String getSomething() { return ""; }
|
||||
}
|
||||
Vendored
+22
@@ -0,0 +1,22 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ o: JavaClass2): kotlin.Unit
|
||||
internal fun useString(/*0*/ i: kotlin.String): 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 getSomething(): kotlin.Any!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open fun setSomething(/*0*/ value: kotlin.Any!): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public open class JavaClass2 : JavaClass1 {
|
||||
public constructor JavaClass2()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ fun getSomething(): kotlin.String!
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun setSomething(/*0*/ value: kotlin.Any!): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+9
@@ -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) { }
|
||||
}
|
||||
+11
@@ -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
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(o: JavaInterface2): Int {
|
||||
if (o is JavaClass) {
|
||||
<!DEBUG_INFO_SMARTCAST!>o<!>.something++
|
||||
return <!DEBUG_INFO_SMARTCAST!>o<!>.x + o.something2
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public abstract class JavaClass extends BaseClass implements JavaInterface {
|
||||
public int getSomething() { return 1; }
|
||||
public void setSomething(int value) { }
|
||||
}
|
||||
|
||||
// FILE: BaseClass.java
|
||||
public abstract class BaseClass implements JavaInterface {
|
||||
}
|
||||
|
||||
// FILE: JavaInterface.java
|
||||
public interface JavaInterface {
|
||||
int getX();
|
||||
}
|
||||
|
||||
// FILE: JavaInterface2.java
|
||||
public interface JavaInterface2 {
|
||||
int getSomething2();
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
package
|
||||
|
||||
public /*synthesized*/ fun JavaInterface(/*0*/ function: () -> kotlin.Int): JavaInterface
|
||||
public /*synthesized*/ fun JavaInterface2(/*0*/ function: () -> kotlin.Int): JavaInterface2
|
||||
internal fun foo(/*0*/ o: JavaInterface2): kotlin.Int
|
||||
|
||||
public abstract class BaseClass : JavaInterface {
|
||||
public constructor BaseClass()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract override /*1*/ /*fake_override*/ fun getX(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public abstract class JavaClass : BaseClass, JavaInterface {
|
||||
public constructor JavaClass()
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open fun getSomething(): kotlin.Int
|
||||
public abstract override /*2*/ /*fake_override*/ fun getX(): kotlin.Int
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open fun setSomething(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface JavaInterface {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getX(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface JavaInterface2 {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getSomething2(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Vendored
+23
@@ -0,0 +1,23 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun Any.foo(): Int {
|
||||
if (this is JavaClass) {
|
||||
something++
|
||||
return x
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public abstract class JavaClass extends BaseClass implements JavaInterface {
|
||||
public int getSomething() { return 1; }
|
||||
public void setSomething(int value) { }
|
||||
}
|
||||
|
||||
// FILE: BaseClass.java
|
||||
public abstract class BaseClass implements JavaInterface {
|
||||
}
|
||||
|
||||
// FILE: JavaInterface.java
|
||||
public interface JavaInterface {
|
||||
int getX();
|
||||
}
|
||||
compiler/testData/diagnostics/tests/syntheticExtensions/javaProperties/SmartCastImplicitReceiver.txt
Vendored
+29
@@ -0,0 +1,29 @@
|
||||
package
|
||||
|
||||
public /*synthesized*/ fun JavaInterface(/*0*/ function: () -> kotlin.Int): JavaInterface
|
||||
internal fun kotlin.Any.foo(): kotlin.Int
|
||||
|
||||
public abstract class BaseClass : JavaInterface {
|
||||
public constructor BaseClass()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract override /*1*/ /*fake_override*/ fun getX(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public abstract class JavaClass : BaseClass, JavaInterface {
|
||||
public constructor JavaClass()
|
||||
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open fun getSomething(): kotlin.Int
|
||||
public abstract override /*2*/ /*fake_override*/ fun getX(): kotlin.Int
|
||||
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open fun setSomething(/*0*/ value: kotlin.Int): kotlin.Unit
|
||||
public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface JavaInterface {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getX(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
// FILE: KotlinFile.kt
|
||||
|
||||
fun <T: B> foo(t: T) {
|
||||
t.setSomething(t.getSomething() + 1)
|
||||
t.something++
|
||||
}
|
||||
|
||||
// FILE: A.java
|
||||
public interface A {
|
||||
int getSomething();
|
||||
}
|
||||
|
||||
// FILE: B.java
|
||||
public interface B extends A {
|
||||
void setSomething(int value);
|
||||
}
|
||||
Vendored
+19
@@ -0,0 +1,19 @@
|
||||
package
|
||||
|
||||
public /*synthesized*/ fun A(/*0*/ function: () -> kotlin.Int): A
|
||||
internal fun </*0*/ T : B> foo(/*0*/ t: T): kotlin.Unit
|
||||
|
||||
public interface A {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun getSomething(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public interface B : A {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract override /*1*/ /*fake_override*/ fun getSomething(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract 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