Introduce fictitious numbered Function class descriptors

This commit is contained in:
Alexander Udalov
2015-04-16 17:58:18 +03:00
parent 27ed098467
commit 4141e0a8df
32 changed files with 807 additions and 70 deletions
@@ -6,13 +6,13 @@ fun check(expected: String, obj: Any?) {
fun box(): String {
check("kotlin.Function0<kotlin.Unit>")
check("kotlin.jvm.functions.Function0<kotlin.Unit>")
{ -> }
check("kotlin.Function0<java.lang.Integer>")
{ -> 42 }
check("kotlin.Function1<java.lang.String, java.lang.Long>",
check("kotlin.jvm.functions.Function0<java.lang.Integer>")
{ -> 42 }
check("kotlin.jvm.functions.Function1<java.lang.String, java.lang.Long>",
fun (s: String) = 42.toLong())
check("kotlin.Function2<java.lang.Integer, java.lang.Integer, kotlin.Unit>")
check("kotlin.jvm.functions.Function2<java.lang.Integer, java.lang.Integer, kotlin.Unit>")
{ x: Int, y: Int -> }
check("kotlin.ExtensionFunction0<java.lang.Integer, kotlin.Unit>",
@@ -25,4 +25,4 @@ fun box(): String {
fun Int.(x: Int, y: Int) {})
return "OK"
}
}
@@ -19,12 +19,12 @@ val extensionFun = fun Any.() {}
val extensionWithArgFun = fun Long.(x: Any): Date = Date()
fun box(): String {
assertGenericSuper("kotlin.Function0<kotlin.Unit>", unitFun)
assertGenericSuper("kotlin.Function0<java.lang.Integer>", intFun)
assertGenericSuper("kotlin.Function1<java.lang.String, kotlin.Unit>", stringParamFun)
assertGenericSuper("kotlin.Function1<java.util.List<? extends java.lang.String>, java.util.List<? extends java.lang.String>>", listFun)
assertGenericSuper("kotlin.Function1<java.util.List<java.lang.Double>, java.util.List<java.lang.Integer>>", mutableListFun)
assertGenericSuper("kotlin.Function1<java.lang.Comparable<? super java.lang.String>, kotlin.Unit>", funWithIn)
assertGenericSuper("kotlin.jvm.functions.Function0<kotlin.Unit>", unitFun)
assertGenericSuper("kotlin.jvm.functions.Function0<java.lang.Integer>", intFun)
assertGenericSuper("kotlin.jvm.functions.Function1<java.lang.String, kotlin.Unit>", stringParamFun)
assertGenericSuper("kotlin.jvm.functions.Function1<java.util.List<? extends java.lang.String>, java.util.List<? extends java.lang.String>>", listFun)
assertGenericSuper("kotlin.jvm.functions.Function1<java.util.List<java.lang.Double>, java.util.List<java.lang.Integer>>", mutableListFun)
assertGenericSuper("kotlin.jvm.functions.Function1<java.lang.Comparable<? super java.lang.String>, kotlin.Unit>", funWithIn)
assertGenericSuper("kotlin.ExtensionFunction0<java.lang.Object, kotlin.Unit>", extensionFun)
assertGenericSuper("kotlin.ExtensionFunction1<java.lang.Long, java.lang.Object, java.util.Date>", extensionWithArgFun)
@@ -7,7 +7,7 @@ class Super {
}
class Sub extends Super {
void foo(kotlin.Function0<kotlin.Unit> r) {
void foo(kotlin.jvm.functions.Function0<kotlin.Unit> r) {
lastCalled = "sub";
}
}
@@ -4,11 +4,11 @@ import java.lang.String;
import java.lang.UnsupportedOperationException;
import java.util.*;
import jet.runtime.typeinfo.KotlinSignature;
import kotlin.*;
import kotlin.jvm.functions.*;
public class MethodWithFunctionTypes {
@KotlinSignature("fun foo(f : (String?) -> String) : (String.() -> String?)?")
public ExtensionFunction0<String, String> foo(Function1<String, String> f) {
@KotlinSignature("fun foo(f : (String?) -> String) : (() -> String?)?")
public Function0<String> foo(Function1<String, String> f) {
throw new UnsupportedOperationException();
}
}
@@ -2,5 +2,5 @@ package test
public open class MethodWithFunctionTypes {
public constructor MethodWithFunctionTypes()
public open fun foo(/*0*/ f: ((kotlin.String!) -> kotlin.String!)!): (kotlin.String!.() -> kotlin.String!)!
public open fun foo(/*0*/ f: ((kotlin.String!) -> kotlin.String!)!): (() -> kotlin.String!)!
}
@@ -2,7 +2,7 @@ package test;
public interface AdapterDoesntOverrideDeclaration {
public interface Super {
void foo(kotlin.Function0<kotlin.Unit> r);
void foo(kotlin.jvm.functions.Function0<kotlin.Unit> r);
}
public interface Sub extends Super {
@@ -3,7 +3,7 @@ package test;
public interface InheritedAdapterAndDeclaration {
public interface Super {
void foo(Runnable r);
void foo(kotlin.Function0<kotlin.Unit> r);
void foo(kotlin.jvm.functions.Function0<kotlin.Unit> r);
}
public interface Sub extends Super {
@@ -7,7 +7,7 @@ public interface InheritedOverriddenAdapter {
}
public class Sub extends Super {
public void foo(kotlin.Function0<kotlin.Unit> r) {
public void foo(kotlin.jvm.functions.Function0<kotlin.Unit> r) {
}
}
}
@@ -9,6 +9,6 @@ public interface OverriddenAmbiguousAdapters {
}
public interface Sub extends Super {
void foo(kotlin.Function0<kotlin.Unit> r);
void foo(kotlin.jvm.functions.Function0<kotlin.Unit> r);
}
}