Move .java and .kotlin extension properties to kotlin.jvm

Delete the old ones in package kotlin.reflect.jvm because otherwise the code
using those functions will become red in a lot less meaningful way (overload
resolution ambiguity) than if they're deleted (unresolved import)

Based on the work originally done by @dnpetrov

 #KT-8380 Fixed
This commit is contained in:
Alexander Udalov
2015-08-26 16:21:47 +03:00
parent b8badd59ba
commit 8d9618348d
32 changed files with 155 additions and 50 deletions
@@ -1,5 +1,4 @@
import kotlin.test.*
import kotlin.reflect.jvm.*
fun box(): String {
val any = Array<Any>::class
@@ -1,5 +1,4 @@
import kotlin.test.*
import kotlin.reflect.jvm.java
class Klass
class Other
@@ -1,7 +1,6 @@
import kotlin.test.assertEquals
import kotlin.test.assertTrue
import kotlin.reflect.jvm.jvmName
import kotlin.reflect.jvm.kotlin
class Klass {
class Nested
@@ -1,5 +1,4 @@
import kotlin.test.assertEquals
import kotlin.reflect.jvm.kotlin
class Klass {
class Nested
@@ -1,5 +1,3 @@
import kotlin.reflect.jvm.*
class A
fun box(): String {
@@ -1,4 +1,3 @@
import kotlin.reflect.jvm.kotlin
import kotlin.reflect.*
class A {
@@ -0,0 +1,33 @@
// NO_KOTLIN_REFLECT
import kotlin.test.*
class Klass
fun box(): String {
val kClass = Klass::class
val jClass = kClass.java
val kjClass = Klass::class.java
val kkClass = jClass.kotlin
val jjClass = kkClass.java
assertEquals("Klass", jClass.getSimpleName())
assertEquals("Klass", kjClass.getSimpleName())
assertEquals("Klass", kkClass.simpleName)
assertEquals(kjClass, jjClass)
failsWith(Error::class.java) { kClass.simpleName!! }
failsWith(Error::class.java) { kClass.qualifiedName!! }
failsWith(Error::class.java) { kClass.members }
val jlError = Error::class.java
val kljError = Error::class
val jljError = kljError.java
val jlkError = jlError.kotlin
assertEquals("Error", jlError.getSimpleName())
assertEquals("Error", jljError.getSimpleName())
assertEquals("Error", jlkError.simpleName)
return "OK"
}
@@ -0,0 +1,20 @@
// NO_KOTLIN_REFLECT
import kotlin.test.assertEquals
fun check(name: String, c: Class<*>) {
assertEquals(name, c.simpleName)
}
fun box(): String {
check("boolean", Boolean::class.java)
check("byte", Byte::class.java)
check("char", Char::class.java)
check("short", Short::class.java)
check("int", Int::class.java)
check("float", Float::class.java)
check("long", Long::class.java)
check("double", Double::class.java)
return "OK"
}
@@ -0,0 +1,22 @@
// NO_KOTLIN_REFLECT
import kotlin.test.assertEquals
class Klass
inline fun <reified T> simpleName(): String =
T::class.java.getSimpleName()
inline fun <reified T> simpleName2(): String {
val kClass = T::class // Intrinsic for T::class.java is not used
return kClass.java.getSimpleName()
}
fun box(): String {
assertEquals("Integer", simpleName<Int>())
assertEquals("Integer", simpleName2<Int>())
assertEquals("Klass", simpleName<Klass>())
return "OK"
}
@@ -1,4 +1,3 @@
import kotlin.reflect.jvm.*
import kotlin.reflect.*
import kotlin.test.*
@@ -1,4 +1,3 @@
import kotlin.reflect.jvm.kotlin
import kotlin.reflect.*
var storage = "before"
@@ -1,4 +1,3 @@
import kotlin.reflect.jvm.kotlin
import kotlin.reflect.*
class A(val readonly: String) {
@@ -1,4 +1,3 @@
import kotlin.reflect.jvm.kotlin
import kotlin.reflect.*
class A {
@@ -1,5 +1,4 @@
import kotlin.reflect.*
import kotlin.reflect.jvm.kotlin
class A(param: String) {
val int: Int get() = 42