[IR] Add KType to IrBuiltins
This commit is contained in:
@@ -265,6 +265,8 @@ class IrBuiltInsOverFir(
|
||||
override val kPropertyClass: IrClassSymbol get() = kProperty.klass
|
||||
private val kClass by loadClass(StandardClassIds.KClass)
|
||||
override val kClassClass: IrClassSymbol get() = kClass.klass
|
||||
private val kType by loadClass(StandardClassIds.KType)
|
||||
override val kTypeClass: IrClassSymbol get() = kType.klass
|
||||
private val kProperty0 by loadClass(StandardClassIds.KProperty0)
|
||||
override val kProperty0Class: IrClassSymbol get() = kProperty0.klass
|
||||
private val kProperty1 by loadClass(StandardClassIds.KProperty1)
|
||||
|
||||
+1
-5
@@ -37,11 +37,7 @@ class IrInterpreterEnvironment(
|
||||
internal val kTypeParameterClass by lazy { irBuiltIns.kClassClass.getIrClassOfReflectionFromList("typeParameters")!! }
|
||||
internal val kParameterClass by lazy { irBuiltIns.kFunctionClass.getIrClassOfReflectionFromList("parameters")!! }
|
||||
internal val kTypeProjectionClass by lazy { kTypeClass.getIrClassOfReflectionFromList("arguments")!! }
|
||||
internal val kTypeClass: IrClassSymbol by lazy {
|
||||
// here we use fallback to `Any` because `KType` cannot be found on JS/Native by this way
|
||||
// but still this class is used to represent type arguments in interpreter
|
||||
irBuiltIns.kClassClass.getIrClassOfReflectionFromList("supertypes") ?: irBuiltIns.anyClass
|
||||
}
|
||||
internal val kTypeClass: IrClassSymbol by lazy { irBuiltIns.kTypeClass }
|
||||
|
||||
init {
|
||||
mapOfObjects[irBuiltIns.unitClass] = Common(irBuiltIns.unitClass.owner)
|
||||
|
||||
+1
@@ -340,6 +340,7 @@ class IrBuiltInsOverDescriptors(
|
||||
override val kCallableClass = builtIns.kCallable.toIrSymbol()
|
||||
override val kPropertyClass = builtIns.kProperty.toIrSymbol()
|
||||
override val kClassClass = builtIns.kClass.toIrSymbol()
|
||||
override val kTypeClass = builtIns.kType.toIrSymbol()
|
||||
|
||||
override val kProperty0Class = builtIns.kProperty0.toIrSymbol()
|
||||
override val kProperty1Class = builtIns.kProperty1.toIrSymbol()
|
||||
|
||||
@@ -83,6 +83,7 @@ abstract class IrBuiltIns {
|
||||
abstract val kCallableClass: IrClassSymbol
|
||||
abstract val kPropertyClass: IrClassSymbol
|
||||
abstract val kClassClass: IrClassSymbol
|
||||
abstract val kTypeClass: IrClassSymbol
|
||||
abstract val kProperty0Class: IrClassSymbol
|
||||
abstract val kProperty1Class: IrClassSymbol
|
||||
abstract val kProperty2Class: IrClassSymbol
|
||||
|
||||
@@ -164,6 +164,7 @@ object StandardNames {
|
||||
@JvmField val mutableMapEntry: FqName = mutableMap.child(Name.identifier("MutableEntry"))
|
||||
|
||||
@JvmField val kClass: FqNameUnsafe = reflect("KClass")
|
||||
@JvmField val kType: FqNameUnsafe = reflect("KType")
|
||||
@JvmField val kCallable: FqNameUnsafe = reflect("KCallable")
|
||||
@JvmField val kProperty0: FqNameUnsafe = reflect("KProperty0")
|
||||
@JvmField val kProperty1: FqNameUnsafe = reflect("KProperty1")
|
||||
|
||||
@@ -70,6 +70,7 @@ object StandardClassIds {
|
||||
val KFunction = "KFunction".reflectId()
|
||||
val KClass = "KClass".reflectId()
|
||||
val KCallable = "KCallable".reflectId()
|
||||
val KType = "KType".reflectId()
|
||||
|
||||
val Comparable = "Comparable".baseId()
|
||||
val Number = "Number".baseId()
|
||||
|
||||
@@ -354,6 +354,12 @@ public abstract class KotlinBuiltIns {
|
||||
return getBuiltInClassByFqName(FqNames.kClass.toSafe());
|
||||
}
|
||||
|
||||
|
||||
@NotNull
|
||||
public ClassDescriptor getKType() {
|
||||
return getBuiltInClassByFqName(FqNames.kType.toSafe());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ClassDescriptor getKCallable() {
|
||||
return getBuiltInClassByFqName(FqNames.kCallable.toSafe());
|
||||
|
||||
Reference in New Issue
Block a user