Introduce KClass-based cache for KPackageFragment
* It is a heavy-weight object that is hard to compute * It is being constructed each type _cached_ method ref is used in equals/hashCode * Module name is deliberately ignored, corresponding doc is added where appropriate #KT-48136 Merge-request: KT-MR-6817 Merged-by: Vsevolod Tolstopyatov <qwwdfsad@gmail.com>
This commit is contained in:
committed by
Space
parent
28310eb970
commit
c6cbab43f7
@@ -0,0 +1,13 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// FULL_JDK
|
||||
// WITH_REFLECT
|
||||
import kotlin.jvm.internal.*
|
||||
|
||||
class A
|
||||
fun box(): String {
|
||||
val pckg = Reflection.getOrCreateKotlinPackage(A::class.java)
|
||||
System.gc()
|
||||
val pckg2 = Reflection.getOrCreateKotlinPackage(A::class.java)
|
||||
if (pckg === pckg2) return "OK"
|
||||
return "Fail"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// FULL_JDK
|
||||
// WITH_REFLECT
|
||||
|
||||
class A
|
||||
|
||||
fun box(): String {
|
||||
val clz = A::class
|
||||
System.gc()
|
||||
val clz2 = A::class
|
||||
if (clz === clz2) return "OK"
|
||||
return "Fail"
|
||||
}
|
||||
Reference in New Issue
Block a user