Introduce module 'reflection', move KFunctionN to it

Metadata for KFunction classes is now longer serialized along with built-in
classes. This effectively means that it's no longer possible to find KFunction
classes via dependency on built-ins. There should be a kotlin-runtime library
in the specified classpath for reflection types to be resolvable.

A lot of tests were moved and changed, because tests on callable references
require stdlib in classpath from now on
This commit is contained in:
Alexander Udalov
2014-05-07 18:35:45 +04:00
parent c1cd8bf069
commit c7a7f31e82
124 changed files with 619 additions and 847 deletions
@@ -0,0 +1,23 @@
fun foo(s: String) {}
class A {
fun bar(): String = ""
}
fun A.baz() {}
fun box(): String {
val f = "${::foo}"
if (f != "kotlin.reflect.KFunctionImpl1<java.lang.String, kotlin.Unit>") return "Fail foo: $f"
val nameOfA = (A() as java.lang.Object).getClass().getName()
val g = "${A::bar}"
if (g != "kotlin.reflect.KMemberFunctionImpl0<$nameOfA, java.lang.String>") return "Fail bar: $g"
val h = "${A::baz}"
if (h != "kotlin.reflect.KExtensionFunctionImpl0<$nameOfA, kotlin.Unit>") return "Fail baz: $h"
return "OK"
}