IR: use IrFactory in IR builders

This commit is contained in:
Alexander Udalov
2020-07-14 18:08:14 +02:00
parent 898dd20a9e
commit d1dc938a5d
58 changed files with 291 additions and 265 deletions
@@ -5,20 +5,18 @@
// This file was autogenerated based on android.jar, do not edit it directly.
package org.jetbrains.kotlin.android.parcel.ir
import org.jetbrains.kotlin.backend.common.CommonBackendContext
import org.jetbrains.kotlin.backend.common.ir.Symbols
import org.jetbrains.kotlin.backend.common.ir.createImplicitParameterDeclarationWithWrappedDescriptor
import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.impl.EmptyPackageFragmentDescriptor
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
import org.jetbrains.kotlin.ir.builders.declarations.*
import org.jetbrains.kotlin.ir.declarations.IrFactory
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
import org.jetbrains.kotlin.ir.declarations.IrPackageFragment
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
import org.jetbrains.kotlin.ir.symbols.*
import org.jetbrains.kotlin.ir.symbols.impl.IrExternalPackageFragmentSymbolImpl
import org.jetbrains.kotlin.ir.types.defaultType
import org.jetbrains.kotlin.ir.types.makeNullable
import org.jetbrains.kotlin.ir.types.starProjectedType
@@ -35,6 +33,8 @@ class AndroidSymbols(
private val charSequence: IrClassSymbol,
private val moduleFragment: IrModuleFragment
) {
private val irFactory: IrFactory = IrFactoryImpl
private val androidOs: IrPackageFragment = createPackage("android.os")
private val androidText: IrPackageFragment = createPackage("android.text")
@@ -109,7 +109,7 @@ class AndroidSymbols(
private val javaUtilTreeSet: IrClassSymbol =
createClass(javaUtil, "TreeSet", ClassKind.CLASS, Modality.OPEN)
val androidOsParcelableCreator: IrClassSymbol = buildClass {
val androidOsParcelableCreator: IrClassSymbol = irFactory.buildClass {
name = Name.identifier("Creator")
kind = ClassKind.INTERFACE
modality = Modality.ABSTRACT
@@ -130,7 +130,7 @@ class AndroidSymbols(
}
}.symbol
val kotlinKClassJava: IrPropertySymbol = buildProperty {
val kotlinKClassJava: IrPropertySymbol = irFactory.buildProperty {
name = Name.identifier("java")
}.apply {
parent = kotlinJvm
@@ -454,7 +454,7 @@ class AndroidSymbols(
shortName: String,
classKind: ClassKind,
classModality: Modality
): IrClassSymbol = buildClass {
): IrClassSymbol = irFactory.buildClass {
name = Name.identifier(shortName)
kind = classKind
modality = classModality
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.builders.declarations.*
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.expressions.IrFunctionReference
@@ -52,6 +53,8 @@ class ParcelableIrTransformer(private val context: IrPluginContext, private val
private val symbolMap = mutableMapOf<IrFunctionSymbol, IrFunctionSymbol>()
private val irFactory: IrFactory = IrFactoryImpl
fun transform(moduleFragment: IrModuleFragment) {
moduleFragment.accept(this, null)
deferredOperations.forEach { it() }
@@ -199,7 +202,7 @@ class ParcelableIrTransformer(private val context: IrPluginContext, private val
isFinal = true
}.apply {
val irField = this
val creatorClass = buildClass {
val creatorClass = irFactory.buildClass {
name = Name.identifier("Creator")
visibility = Visibilities.LOCAL
}.apply {
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.ir.builders.*
import org.jetbrains.kotlin.ir.builders.declarations.*
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.expressions.IrExpression
import org.jetbrains.kotlin.ir.expressions.IrTypeOperator
@@ -57,6 +58,8 @@ private class AndroidIrTransformer(val extension: AndroidIrExtension, val plugin
private val cachedMethods = mutableMapOf<FqName, IrSimpleFunction>()
private val cachedFields = mutableMapOf<FqName, IrField>()
private val irFactory: IrFactory = IrFactoryImpl
private fun createPackage(fqName: FqName) =
cachedPackages.getOrPut(fqName) {
IrExternalPackageFragmentImpl.createEmptyExternalPackageFragment(pluginContext.moduleDescriptor, fqName)
@@ -64,7 +67,7 @@ private class AndroidIrTransformer(val extension: AndroidIrExtension, val plugin
private fun createClass(fqName: FqName, isInterface: Boolean = false) =
cachedClasses.getOrPut(fqName) {
buildClass {
irFactory.buildClass {
name = fqName.shortName()
kind = if (isInterface) ClassKind.INTERFACE else ClassKind.CLASS
origin = IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB