Iniital implementation of synthetic extensions for SAM-adapter functions (non-static only)
This commit is contained in:
+15
@@ -0,0 +1,15 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass<String>): String {
|
||||
return javaClass.doSomething("", 1) { s: String -> "" }
|
||||
}
|
||||
|
||||
fun useString(<!UNUSED_PARAMETER!>s<!>: String) {}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass<T> {
|
||||
public T doSomething(T t, int anInt, I<T> i) { return t; }
|
||||
}
|
||||
|
||||
interface I<T> {
|
||||
T doIt(T t);
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ javaClass: JavaClass<kotlin.String>): kotlin.String
|
||||
internal fun useString(/*0*/ s: kotlin.String): kotlin.Unit
|
||||
|
||||
public open class JavaClass</*0*/ T : kotlin.Any!> {
|
||||
public constructor JavaClass</*0*/ T : kotlin.Any!>()
|
||||
public open fun doSomething(/*0*/ t: T!, /*1*/ anInt: kotlin.Int, /*2*/ i: I<T!>!): T!
|
||||
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 override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass): String {
|
||||
return javaClass.doSomething("") { it }
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public <T> T doSomething(T t, I<T> i) { return i.run(t); }
|
||||
}
|
||||
|
||||
interface I<T> {
|
||||
T run(T t);
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ javaClass: JavaClass): kotlin.String
|
||||
|
||||
public open class JavaClass {
|
||||
public constructor JavaClass()
|
||||
public open fun </*0*/ T : kotlin.Any!> doSomething(/*0*/ t: T!, /*1*/ i: I<T!>!): T!
|
||||
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 override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass<Int>): String {
|
||||
return javaClass.doSomething("", 1) { it }
|
||||
}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass<X> {
|
||||
public <T> T doSomething(T t, X x, I<T> i) { return i.run(t); }
|
||||
}
|
||||
|
||||
interface I<T> {
|
||||
T run(T t);
|
||||
}
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ javaClass: JavaClass<kotlin.Int>): kotlin.String
|
||||
|
||||
public open class JavaClass</*0*/ X : kotlin.Any!> {
|
||||
public constructor JavaClass</*0*/ X : kotlin.Any!>()
|
||||
public open fun </*0*/ T : kotlin.Any!> doSomething(/*0*/ t: T!, /*1*/ x: X!, /*2*/ i: I<T!>!): T!
|
||||
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 override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass<Int>) {
|
||||
val inner = javaClass.createInner<String>()
|
||||
inner.doSomething(1, "") {
|
||||
bar()
|
||||
}
|
||||
}
|
||||
|
||||
fun bar(){}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass<T> {
|
||||
public <X> Inner<X> createInner() {
|
||||
return new Inner<X>();
|
||||
}
|
||||
|
||||
public class Inner<X>{
|
||||
public void doSomething(T t, X x, Runnable runnable) { runnable.run(); }
|
||||
}
|
||||
}
|
||||
Vendored
+20
@@ -0,0 +1,20 @@
|
||||
package
|
||||
|
||||
internal fun bar(): kotlin.Unit
|
||||
internal fun foo(/*0*/ javaClass: JavaClass<kotlin.Int>): kotlin.Unit
|
||||
|
||||
public open class JavaClass</*0*/ T : kotlin.Any!> {
|
||||
public constructor JavaClass</*0*/ T : kotlin.Any!>()
|
||||
public open fun </*0*/ X : kotlin.Any!> createInner(): JavaClass.Inner<X!>!
|
||||
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 override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public open inner class Inner</*0*/ X : kotlin.Any!> {
|
||||
public constructor Inner</*0*/ X : kotlin.Any!>()
|
||||
public open fun doSomething(/*0*/ t: T!, /*1*/ x: X!, /*2*/ runnable: java.lang.Runnable!): kotlin.Unit
|
||||
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 override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// FILE: KotlinFile.kt
|
||||
fun foo(javaClass: JavaClass) {
|
||||
javaClass.doSomething(<!NAMED_ARGUMENTS_NOT_ALLOWED!>p<!> = 1) {
|
||||
bar()
|
||||
}
|
||||
}
|
||||
|
||||
fun bar(){}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public void doSomething(int p, Runnable runnable) { runnable.run(); }
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package
|
||||
|
||||
internal fun bar(): kotlin.Unit
|
||||
internal fun foo(/*0*/ javaClass: JavaClass): kotlin.Unit
|
||||
|
||||
public open class JavaClass {
|
||||
public constructor JavaClass()
|
||||
public open fun doSomething(/*0*/ p: kotlin.Int, /*1*/ runnable: java.lang.Runnable!): kotlin.Unit
|
||||
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 override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
// FILE: KotlinFile.kt
|
||||
class KotlinClass {
|
||||
public fun doSomething(runnable: Runnable) { runnable.run() }
|
||||
}
|
||||
|
||||
public interface I {
|
||||
public fun doIt()
|
||||
}
|
||||
|
||||
fun foo(javaClass: JavaClass, kotlinClass: KotlinClass) {
|
||||
javaClass.doSomething {
|
||||
bar()
|
||||
}
|
||||
|
||||
kotlinClass.doSomething <!TYPE_MISMATCH!>{
|
||||
bar()
|
||||
}<!>
|
||||
|
||||
javaClass.doSomething2 <!TYPE_MISMATCH!>{
|
||||
bar()
|
||||
}<!>
|
||||
}
|
||||
|
||||
fun bar(){}
|
||||
|
||||
// FILE: JavaClass.java
|
||||
public class JavaClass {
|
||||
public void doSomething(Runnable runnable) { runnable.run(); }
|
||||
public void doSomething2(I i) { i.doIt(); }
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package
|
||||
|
||||
internal fun bar(): kotlin.Unit
|
||||
internal fun foo(/*0*/ javaClass: JavaClass, /*1*/ kotlinClass: KotlinClass): kotlin.Unit
|
||||
|
||||
public interface I {
|
||||
public abstract fun doIt(): kotlin.Unit
|
||||
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 override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public open class JavaClass {
|
||||
public constructor JavaClass()
|
||||
public open fun doSomething(/*0*/ runnable: java.lang.Runnable!): kotlin.Unit
|
||||
public open fun doSomething2(/*0*/ i: I!): kotlin.Unit
|
||||
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 override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
internal final class KotlinClass {
|
||||
public constructor KotlinClass()
|
||||
public final fun doSomething(/*0*/ runnable: java.lang.Runnable): kotlin.Unit
|
||||
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 override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
Reference in New Issue
Block a user