diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendContext.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendContext.kt index 06f8dd62d57..9a802d7c0d0 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendContext.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/CommonBackendContext.kt @@ -21,9 +21,6 @@ interface LoggingContext { interface CommonBackendContext : BackendContext, LoggingContext { override val ir: Ir - //TODO move to builtins - fun getInternalClass(name: String): ClassDescriptor - fun getClass(fqName: FqName): ClassDescriptor //TODO move to builtins diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/Ir.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/Ir.kt index c07ecd1116d..e55a8f42454 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/Ir.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/Ir.kt @@ -64,6 +64,8 @@ abstract class Symbols(val context: T, private val abstract val stringBuilder: IrClassSymbol + abstract val defaultConstructorMarker: IrClassSymbol + val iterator = symbolTable.referenceClass( builtInsPackage("kotlin", "collections").getContributedClassifier( Name.identifier("Iterator"), NoLookupLocation.FROM_BACKEND @@ -86,8 +88,6 @@ abstract class Symbols(val context: T, private val val progressionClasses = listOf(charProgression, intProgression, longProgression) val progressionClassesTypes = progressionClasses.map { it.descriptor.defaultType }.toSet() - val defaultConstructorMarker = symbolTable.referenceClass(context.getInternalClass("DefaultConstructorMarker")) - val any = symbolTable.referenceClass(builtIns.any) val unit = symbolTable.referenceClass(builtIns.unit) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIntrinsics.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIntrinsics.kt index 586cbf0a49e..f5d2d348dd7 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIntrinsics.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIntrinsics.kt @@ -252,7 +252,7 @@ class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendC val jsBind = defineJsBindIntrinsic() // TODO move to IntrinsifyCallsLowering - val doNotIntrinsifyAnnotationSymbol = context.symbolTable.referenceClass(context.getInternalClass("DoNotIntrinsify")) + val doNotIntrinsifyAnnotationSymbol = context.symbolTable.referenceClass(context.getJsInternalClass("DoNotIntrinsify")) // TODO move CharSequence-related stiff to IntrinsifyCallsLowering val charSequenceClassSymbol = context.symbolTable.referenceClass(context.getClass(FqName("kotlin.CharSequence"))) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIrBackendContext.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIrBackendContext.kt index 77b2773b172..dfd6b24db03 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIrBackendContext.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsIrBackendContext.kt @@ -144,8 +144,8 @@ class JsIrBackendContext( fun getOperatorByName(name: Name, type: KotlinType) = operatorMap[name]?.get(type) - override val ir = object : Ir(this, irModuleFragment) { - override val symbols = object : Symbols(this@JsIrBackendContext, symbolTable.lazyWrapper) { + override val ir = object : Ir(this, irModuleFragment) { + override val symbols = object : Symbols(this@JsIrBackendContext, symbolTable.lazyWrapper) { override val ThrowNullPointerException = symbolTable.referenceSimpleFunction(getFunctions(kotlinPackageFqn.child(Name.identifier("THROW_NPE"))).single()) @@ -158,12 +158,15 @@ class JsIrBackendContext( override val ThrowUninitializedPropertyAccessException = symbolTable.referenceSimpleFunction(getFunctions(FqName("kotlin.throwUninitializedPropertyAccessException")).single()) + override val defaultConstructorMarker = + symbolTable.referenceClass(context.getJsInternalClass("DefaultConstructorMarker")) + override val stringBuilder get() = TODO("not implemented") override val copyRangeTo: Map get() = TODO("not implemented") override val coroutineImpl = - symbolTable.referenceClass(findClass(coroutinePackage.memberScope, COROUTINE_IMPL_NAME.identifier)) + symbolTable.referenceClass(findClass(coroutinePackage.memberScope, COROUTINE_IMPL_NAME)) override val coroutineSuspendedGetter = symbolTable.referenceSimpleFunction( coroutineIntrinsicsPackage.memberScope.getContributedVariables( @@ -262,8 +265,6 @@ class JsIrBackendContext( } }.toMap() - private fun findClass(memberScope: MemberScope, className: String) = findClass(memberScope, Name.identifier(className)) - private fun findClass(memberScope: MemberScope, name: Name) = memberScope.getContributedClassifier(name, NoLookupLocation.FROM_BACKEND) as ClassDescriptor @@ -273,7 +274,8 @@ class JsIrBackendContext( private fun findFunctions(memberScope: MemberScope, name: Name) = memberScope.getContributedFunctions(name, NoLookupLocation.FROM_BACKEND).toList() - override fun getInternalClass(name: String) = findClass(internalPackage.memberScope, name) + internal fun getJsInternalClass(name: String): ClassDescriptor = + findClass(internalPackage.memberScope, Name.identifier(name)) override fun getClass(fqName: FqName) = findClass(module.getPackage(fqName.parent()).memberScope, fqName.shortName()) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt index c2425cbb561..6d4adaf197d 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt @@ -59,7 +59,7 @@ class JvmBackendContext( return memberScope.getContributedClassifier(name, NoLookupLocation.FROM_BACKEND) as ClassDescriptor } - override fun getInternalClass(name: String): ClassDescriptor { + private fun getJvmInternalClass(name: String): ClassDescriptor { return find(state.module.getPackage(FqName("kotlin.jvm.internal")).memberScope, name) } @@ -74,7 +74,7 @@ class JvmBackendContext( override fun getInternalFunctions(name: String): List { return when (name) { "ThrowUninitializedPropertyAccessException" -> - getInternalClass("Intrinsics").staticScope.getContributedFunctions( + getJvmInternalClass("Intrinsics").staticScope.getContributedFunctions( Name.identifier("throwUninitializedPropertyAccessException"), NoLookupLocation.FROM_BACKEND ).toList() @@ -116,6 +116,9 @@ class JvmBackendContext( override val stringBuilder: IrClassSymbol get() = symbolTable.referenceClass(context.getClass(FqName("java.lang.StringBuilder"))) + override val defaultConstructorMarker: IrClassSymbol = + symbolTable.referenceClass(context.getJvmInternalClass("DefaultConstructorMarker")) + override val copyRangeTo: Map get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates. override val coroutineImpl: IrClassSymbol @@ -124,10 +127,10 @@ class JvmBackendContext( get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates. val lambdaClass: IrClassSymbol = - symbolTable.referenceClass(context.getInternalClass("Lambda")) + symbolTable.referenceClass(context.getJvmInternalClass("Lambda")) val functionReference: IrClassSymbol = - symbolTable.referenceClass(context.getInternalClass("FunctionReference")) + symbolTable.referenceClass(context.getJvmInternalClass("FunctionReference")) fun getFunction(parameterCount: Int): IrClassSymbol = symbolTable.referenceClass(context.builtIns.getFunction(parameterCount))