[IR] Extract IrExternalPackageFragmentImpl.createEmptyExternalPackageFragment
This commit is contained in:
@@ -32,7 +32,9 @@ import java.util.*
|
||||
class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendContext) {
|
||||
|
||||
private val externalPackageFragmentSymbol = IrExternalPackageFragmentSymbolImpl(context.internalPackageFragmentDescriptor)
|
||||
val externalPackageFragment = IrExternalPackageFragmentImpl(externalPackageFragmentSymbol)
|
||||
val externalPackageFragment = IrExternalPackageFragmentImpl(
|
||||
externalPackageFragmentSymbol, context.internalPackageFragmentDescriptor.fqName
|
||||
)
|
||||
|
||||
// TODO: Should we drop operator intrinsics in favor of IrDynamicOperatorExpression?
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ class JvmSymbols(
|
||||
|
||||
|
||||
private fun createPackage(fqName: FqName): IrPackageFragment =
|
||||
IrExternalPackageFragmentImpl(IrExternalPackageFragmentSymbolImpl(EmptyPackageFragmentDescriptor(context.state.module, fqName)))
|
||||
IrExternalPackageFragmentImpl.createEmptyExternalPackageFragment(context.state.module, fqName)
|
||||
|
||||
private fun createClass(
|
||||
fqName: FqName,
|
||||
|
||||
+2
-4
@@ -32,10 +32,8 @@ class JvmSharedVariablesManager(
|
||||
val symbols: JvmSymbols,
|
||||
val irBuiltIns: IrBuiltIns
|
||||
) : SharedVariablesManager {
|
||||
private val jvmInternalPackage = IrExternalPackageFragmentImpl(
|
||||
IrExternalPackageFragmentSymbolImpl(
|
||||
EmptyPackageFragmentDescriptor(module, FqName("kotlin.jvm.internal"))
|
||||
)
|
||||
private val jvmInternalPackage = IrExternalPackageFragmentImpl.createEmptyExternalPackageFragment(
|
||||
module, FqName("kotlin.jvm.internal")
|
||||
)
|
||||
|
||||
private val refNamespaceClass = jvmInternalPackage.addClass {
|
||||
|
||||
+3
-8
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.annotations.KotlinRetention
|
||||
import org.jetbrains.kotlin.descriptors.annotations.KotlinTarget
|
||||
import org.jetbrains.kotlin.descriptors.impl.EmptyPackageFragmentDescriptor
|
||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||
import org.jetbrains.kotlin.ir.builders.declarations.addValueParameter
|
||||
import org.jetbrains.kotlin.ir.builders.declarations.buildClass
|
||||
@@ -54,13 +53,9 @@ private class AdditionalClassAnnotationLowering(private val context: JvmBackendC
|
||||
|
||||
// TODO: import IR structures from the library?
|
||||
|
||||
private val annotationPackage: IrPackageFragment = IrExternalPackageFragmentImpl(
|
||||
IrExternalPackageFragmentSymbolImpl(
|
||||
EmptyPackageFragmentDescriptor(
|
||||
context.ir.irModule.descriptor,
|
||||
FqName("java.lang.annotation")
|
||||
)
|
||||
)
|
||||
private val annotationPackage: IrPackageFragment = IrExternalPackageFragmentImpl.createEmptyExternalPackageFragment(
|
||||
context.ir.irModule.descriptor,
|
||||
FqName("java.lang.annotation")
|
||||
)
|
||||
|
||||
private fun buildAnnotationClass(
|
||||
|
||||
+2
-6
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.backend.js.JsDeclarationFactory
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.impl.EmptyPackageFragmentDescriptor
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.backend.js.JsCommonBackendContext
|
||||
import org.jetbrains.kotlin.ir.backend.js.JsMapping
|
||||
@@ -23,7 +22,6 @@ import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrExternalPackageFragmentSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.impl.IrExternalPackageFragmentSymbolImpl
|
||||
import org.jetbrains.kotlin.ir.util.IdSignature
|
||||
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
@@ -58,10 +56,8 @@ class WasmBackendContext(
|
||||
val objectToGetInstanceFunction = mutableMapOf<IrClassSymbol, IrSimpleFunction>()
|
||||
override val internalPackageFqn = FqName("kotlin.wasm")
|
||||
|
||||
private val internalPackageFragment = IrExternalPackageFragmentImpl(
|
||||
IrExternalPackageFragmentSymbolImpl(
|
||||
EmptyPackageFragmentDescriptor(builtIns.builtInsModule, FqName("kotlin.wasm.internal"))
|
||||
)
|
||||
private val internalPackageFragment = IrExternalPackageFragmentImpl.createEmptyExternalPackageFragment(
|
||||
builtIns.builtInsModule, FqName("kotlin.wasm.internal")
|
||||
)
|
||||
|
||||
override val sharedVariablesManager = JsSharedVariablesManager(irBuiltIns, internalPackageFragment)
|
||||
|
||||
+13
-2
@@ -16,12 +16,15 @@
|
||||
|
||||
package org.jetbrains.kotlin.ir.declarations.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.impl.EmptyPackageFragmentDescriptor
|
||||
import org.jetbrains.kotlin.ir.IrElementBase
|
||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||
import org.jetbrains.kotlin.ir.declarations.IrExternalPackageFragment
|
||||
import org.jetbrains.kotlin.ir.symbols.IrExternalPackageFragmentSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.impl.IrExternalPackageFragmentSymbolImpl
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
@@ -32,8 +35,6 @@ class IrExternalPackageFragmentImpl(
|
||||
) : IrElementBase(UNDEFINED_OFFSET, UNDEFINED_OFFSET),
|
||||
IrExternalPackageFragment {
|
||||
|
||||
constructor(symbol: IrExternalPackageFragmentSymbol) : this(symbol, symbol.descriptor.fqName)
|
||||
|
||||
init {
|
||||
symbol.bind(this)
|
||||
}
|
||||
@@ -54,4 +55,14 @@ class IrExternalPackageFragmentImpl(
|
||||
declarations[i] = irDeclaration.transform(transformer, data) as IrDeclaration
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun createEmptyExternalPackageFragment(
|
||||
module: ModuleDescriptor,
|
||||
fqName: FqName
|
||||
): IrExternalPackageFragmentImpl =
|
||||
IrExternalPackageFragmentImpl(
|
||||
IrExternalPackageFragmentSymbolImpl(EmptyPackageFragmentDescriptor(module, fqName)), fqName
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -355,7 +355,7 @@ open class SymbolTable(
|
||||
return externalPackageFragmentTable.declare(
|
||||
descriptor,
|
||||
{ IrExternalPackageFragmentSymbolImpl(descriptor) },
|
||||
{ IrExternalPackageFragmentImpl(it) }
|
||||
{ IrExternalPackageFragmentImpl(it, descriptor.fqName) }
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+3
-7
@@ -444,13 +444,9 @@ class AndroidSymbols(
|
||||
}.symbol
|
||||
|
||||
private fun createPackage(packageName: String): IrPackageFragment =
|
||||
IrExternalPackageFragmentImpl(
|
||||
IrExternalPackageFragmentSymbolImpl(
|
||||
EmptyPackageFragmentDescriptor(
|
||||
moduleFragment.descriptor,
|
||||
FqName(packageName)
|
||||
)
|
||||
)
|
||||
IrExternalPackageFragmentImpl.createEmptyExternalPackageFragment(
|
||||
moduleFragment.descriptor,
|
||||
FqName(packageName)
|
||||
)
|
||||
|
||||
private fun createClass(
|
||||
|
||||
+1
-2
@@ -60,8 +60,7 @@ private class AndroidIrTransformer(val extension: AndroidIrExtension, val plugin
|
||||
|
||||
private fun createPackage(fqName: FqName) =
|
||||
cachedPackages.getOrPut(fqName) {
|
||||
val descriptor = EmptyPackageFragmentDescriptor(pluginContext.moduleDescriptor, fqName)
|
||||
IrExternalPackageFragmentImpl(IrExternalPackageFragmentSymbolImpl(descriptor))
|
||||
IrExternalPackageFragmentImpl.createEmptyExternalPackageFragment(pluginContext.moduleDescriptor, fqName)
|
||||
}
|
||||
|
||||
private fun createClass(fqName: FqName, isInterface: Boolean = false) =
|
||||
|
||||
Reference in New Issue
Block a user