IR: introduce IrFactory

This is needed to refactor IrPersistingElementBase-based implementations
into another module, to use it in JS IR.

(cherry picked from commit 4d0802a0512a8fb4c0bd1319952dc4ca2ff0bd9c)
This commit is contained in:
Alexander Udalov
2020-07-10 21:21:19 +02:00
committed by Vasily Levchenko
parent b67b26bdb9
commit 2ee5d6760b
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.backend.konan.descriptors.KonanSharedVariablesManage
import org.jetbrains.kotlin.backend.konan.descriptors.findPackage
import org.jetbrains.kotlin.backend.konan.descriptors.kotlinNativeInternal
import org.jetbrains.kotlin.backend.konan.ir.KonanIr
import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
@@ -20,11 +21,12 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.FunctionDescriptor
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.declarations.IrFile
import org.jetbrains.kotlin.builtins.konan.KonanBuiltIns
import org.jetbrains.kotlin.ir.builders.IrBuilderWithScope
import org.jetbrains.kotlin.ir.declarations.IrClass
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
import org.jetbrains.kotlin.ir.declarations.IrFactory
import org.jetbrains.kotlin.ir.declarations.IrFile
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
import org.jetbrains.kotlin.name.Name
@@ -66,6 +68,8 @@ internal abstract class KonanBackendContext(val config: KonanConfig) : CommonBac
override val mapping: Mapping = DefaultMapping()
override val extractedLocalClasses: MutableSet<IrClass> = mutableSetOf()
override val irFactory: IrFactory = IrFactoryImpl
}
internal fun IrElement.getCompilerMessageLocation(containingFile: IrFile): CompilerMessageLocation? =