Support static method references

#KT-5123 Fixed
This commit is contained in:
Alexander Udalov
2014-09-26 17:05:43 +04:00
parent 19497262b3
commit cd0551078c
10 changed files with 96 additions and 4 deletions
@@ -0,0 +1,5 @@
class A {
public static void main(String[] args) {
args[0] = "OK";
}
}
@@ -0,0 +1,5 @@
fun box(): String {
val args = array("Fail")
(A::main)(args)
return args[0]
}
@@ -0,0 +1,9 @@
enum class E {
ENTRY
}
fun box(): String {
val f = E::valueOf
val result = f("ENTRY")
return if (result == E.ENTRY) "OK" else "Fail $result"
}
@@ -0,0 +1,13 @@
// KT-5123
import java.util.Collections
import java.util.ArrayList
fun box(): String {
val numbers = ArrayList<Int>()
numbers.add(1)
numbers.add(2)
numbers.add(3)
(Collections::rotate)(numbers, 1)
return if ("$numbers" == "[3, 1, 2]") "OK" else "Fail $numbers"
}
@@ -0,0 +1,23 @@
// FILE: test/A.java
package test
import java.util.Arrays;
public class A {
public static void main(String[] args) {
System.out.println(Arrays.asList(args));
}
}
// FILE: 1.kt
import kotlin.reflect.*
import test.A
fun foo(args: Array<String>) {
val main2 = A::main
main2 : KFunction1<Array<String>, Unit>
main2(args)
(A::main)(args)
}
@@ -0,0 +1,3 @@
package
internal fun foo(/*0*/ args: kotlin.Array<kotlin.String>): kotlin.Unit