Support KClass.objectInstance for objects and companion objects

This commit is contained in:
Alexander Udalov
2015-07-23 18:40:24 +03:00
parent 2eb5201575
commit 6878453d44
5 changed files with 60 additions and 2 deletions
@@ -0,0 +1,29 @@
import kotlin.test.assertEquals
object Obj {
fun foo() = 1
}
class A {
companion object {
fun foo() = 2
}
}
class B {
companion object Factory {
fun foo() = 3
}
}
class C
fun box(): String {
assertEquals(1, Obj::class.objectInstance!!.foo())
assertEquals(2, A.Companion::class.objectInstance!!.foo())
assertEquals(3, B.Factory::class.objectInstance!!.foo())
assertEquals(null, C::class.objectInstance)
return "OK"
}
@@ -2994,6 +2994,12 @@ public class BlackBoxWithStdlibCodegenTestGenerated extends AbstractBlackBoxCode
doTestWithStdlib(fileName);
}
@TestMetadata("objectInstance.kt")
public void testObjectInstance() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/reflection/classes/objectInstance.kt");
doTestWithStdlib(fileName);
}
@TestMetadata("qualifiedName.kt")
public void testQualifiedName() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/boxWithStdlib/reflection/classes/qualifiedName.kt");