From e3f77e9c82c6a7533c7279de2d8679a944d07ccf Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Tue, 7 Jul 2020 22:29:09 +0200 Subject: [PATCH] IR: do not use Ir*Impl elements where it's not necessary (cherry picked from commit f9abf365ced93599ff9f4ce38472d89813232228) --- .../BuiltInFictitiousFunctionIrClassFactory.kt | 2 +- .../jetbrains/kotlin/backend/konan/Context.kt | 2 +- .../kotlin/backend/konan/cgen/CBridgeGen.kt | 2 +- .../backend/konan/cgen/CBridgeGenUtils.kt | 11 ++++++++--- .../konan/lower/CallableReferenceLowering.kt | 17 ++++++++++------- .../backend/konan/lower/EnumClassLowering.kt | 7 ++----- .../konan/lower/EnumConstructorsLowering.kt | 4 ++-- .../kotlin/backend/konan/lower/TestProcessor.kt | 8 ++++---- 8 files changed, 29 insertions(+), 24 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt index b364e199012..eb445c416f4 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/BuiltInFictitiousFunctionIrClassFactory.kt @@ -119,7 +119,7 @@ internal class BuiltInFictitiousFunctionIrClassFactory( } } - private fun createTypeParameter(descriptor: TypeParameterDescriptor) = + private fun createTypeParameter(descriptor: TypeParameterDescriptor): IrTypeParameter = symbolTable?.declareGlobalTypeParameter( SYNTHETIC_OFFSET, SYNTHETIC_OFFSET, DECLARATION_ORIGIN_FUNCTION_CLASS, descriptor diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt index 3949dba6622..0037b020edc 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt @@ -126,7 +126,7 @@ internal class SpecialDeclarationsFactory(val context: Context) { } private fun createBridge(function: IrSimpleFunction, - bridgeDirections: BridgeDirections) = WrappedSimpleFunctionDescriptor().let { descriptor -> + bridgeDirections: BridgeDirections): IrSimpleFunction = WrappedSimpleFunctionDescriptor().let { descriptor -> val startOffset = function.startOffset val endOffset = function.endOffset val returnType = when (bridgeDirections.array[0]) { diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt index f41b3cbf8d9..19c3e480174 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGen.kt @@ -1207,7 +1207,7 @@ private class ObjCBlockPointerValuePassing( } } - private fun IrBuilderWithScope.generateKotlinFunctionClass(): IrConstructorImpl { + private fun IrBuilderWithScope.generateKotlinFunctionClass(): IrConstructor { val symbols = stubs.symbols val classDescriptor = WrappedClassDescriptor() diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt index f26378e8e32..606639a9339 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/cgen/CBridgeGenUtils.kt @@ -9,7 +9,10 @@ import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.builders.* -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrFunction +import org.jetbrains.kotlin.ir.declarations.IrValueParameter +import org.jetbrains.kotlin.ir.declarations.IrVariable import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl import org.jetbrains.kotlin.ir.declarations.impl.IrValueParameterImpl import org.jetbrains.kotlin.ir.descriptors.WrappedSimpleFunctionDescriptor @@ -21,7 +24,9 @@ import org.jetbrains.kotlin.ir.symbols.impl.IrSimpleFunctionSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrValueParameterSymbolImpl import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.impl.* -import org.jetbrains.kotlin.ir.util.* +import org.jetbrains.kotlin.ir.util.constructors +import org.jetbrains.kotlin.ir.util.irBuilder +import org.jetbrains.kotlin.ir.util.irCatch import org.jetbrains.kotlin.name.Name internal class CFunctionBuilder { @@ -101,7 +106,7 @@ private fun createKotlinBridge( cBridgeName: String, stubs: KotlinStubs, isExternal: Boolean -): IrFunctionImpl { +): IrFunction { val bridgeDescriptor = WrappedSimpleFunctionDescriptor() @Suppress("DEPRECATION") val bridge = IrFunctionImpl( startOffset, diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt index 460d36aea2b..ef7395da226 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/CallableReferenceLowering.kt @@ -8,13 +8,16 @@ package org.jetbrains.kotlin.backend.konan.lower import org.jetbrains.kotlin.backend.common.FileLoweringPass import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext import org.jetbrains.kotlin.backend.common.ir.* -import org.jetbrains.kotlin.backend.common.lower.* -import org.jetbrains.kotlin.backend.konan.Context -import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName +import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.pop import org.jetbrains.kotlin.backend.common.push +import org.jetbrains.kotlin.backend.konan.Context +import org.jetbrains.kotlin.backend.konan.descriptors.synthesizedName import org.jetbrains.kotlin.backend.konan.llvm.functionName -import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.descriptors.ClassKind +import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.descriptors.ReceiverParameterDescriptor +import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.builders.* @@ -156,7 +159,7 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass typeParam.symbol to functionReference.getTypeArgument(typeParam.index)!! } - private val functionReferenceClass = WrappedClassDescriptor().let { + private val functionReferenceClass: IrClass = WrappedClassDescriptor().let { IrClassImpl( startOffset,endOffset, DECLARATION_ORIGIN_FUNCTION_REFERENCE_IMPL, @@ -251,7 +254,7 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass return BuiltFunctionReference(functionReferenceClass, constructor) } - private fun buildConstructor() = WrappedClassConstructorDescriptor().let { + private fun buildConstructor(): IrConstructor = WrappedClassConstructorDescriptor().let { IrConstructorImpl( startOffset, endOffset, DECLARATION_ORIGIN_FUNCTION_REFERENCE_IMPL, @@ -304,7 +307,7 @@ internal class CallableReferenceLowering(val context: Context): FileLoweringPass private val IrFunction.fullName: String get() = parent.fqNameForIrSerialization.child(Name.identifier(functionName)).asString() - private fun buildInvokeMethod(superFunction: IrSimpleFunction) = WrappedSimpleFunctionDescriptor().let { + private fun buildInvokeMethod(superFunction: IrSimpleFunction): IrSimpleFunction = WrappedSimpleFunctionDescriptor().let { IrFunctionImpl( startOffset, endOffset, DECLARATION_ORIGIN_FUNCTION_REFERENCE_IMPL, diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt index f46f100d330..b2032bda7c0 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumClassLowering.kt @@ -17,10 +17,7 @@ import org.jetbrains.kotlin.backend.konan.llvm.IntrinsicType import org.jetbrains.kotlin.backend.konan.llvm.tryGetIntrinsicType import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.ir.builders.* -import org.jetbrains.kotlin.ir.declarations.IrClass -import org.jetbrains.kotlin.ir.declarations.IrEnumEntry -import org.jetbrains.kotlin.ir.declarations.IrFile -import org.jetbrains.kotlin.ir.declarations.IrFunction +import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.IrPropertyImpl import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin.ARGUMENTS_REORDERING_FOR_CALL @@ -214,7 +211,7 @@ internal class EnumClassLowering(val context: Context) : ClassLoweringPass { private val createUninitializedInstance = context.ir.symbols.createUninitializedInstance.owner - private fun createSyntheticValuesPropertyDeclaration(enumEntries: List): IrPropertyImpl { + private fun createSyntheticValuesPropertyDeclaration(enumEntries: List): IrProperty { val startOffset = irClass.startOffset val endOffset = irClass.endOffset diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt index b6bc80f4e9b..ef6467dcda7 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/EnumConstructorsLowering.kt @@ -106,7 +106,7 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas return loweredEnumConstructor } - private fun lowerEnumConstructor(constructor: IrConstructor): IrConstructorImpl { + private fun lowerEnumConstructor(constructor: IrConstructor): IrConstructor { val startOffset = constructor.startOffset val endOffset = constructor.endOffset val loweredConstructor = WrappedClassConstructorDescriptor( @@ -133,7 +133,7 @@ internal class EnumConstructorsLowering(val context: Context) : ClassLoweringPas } } - fun createSynthesizedValueParameter(index: Int, name: String, type: IrType) = + fun createSynthesizedValueParameter(index: Int, name: String, type: IrType): IrValueParameter = WrappedValueParameterDescriptor().let { IrValueParameterImpl( startOffset, endOffset, diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt index a558fdc39e2..14ae051e15e 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/TestProcessor.kt @@ -335,7 +335,7 @@ internal class TestProcessor (val context: Context) { */ private fun buildObjectGetter(objectSymbol: IrClassSymbol, owner: IrClass, - getterName: Name) = WrappedSimpleFunctionDescriptor().let { descriptor -> + getterName: Name): IrSimpleFunction = WrappedSimpleFunctionDescriptor().let { descriptor -> IrFunctionImpl( owner.startOffset, owner.endOffset, TEST_SUITE_GENERATED_MEMBER, @@ -374,7 +374,7 @@ internal class TestProcessor (val context: Context) { */ private fun buildInstanceGetter(classSymbol: IrClassSymbol, owner: IrClass, - getterName: Name) = WrappedSimpleFunctionDescriptor().let { descriptor -> + getterName: Name): IrSimpleFunction = WrappedSimpleFunctionDescriptor().let { descriptor -> IrFunctionImpl( owner.startOffset, owner.endOffset, TEST_SUITE_GENERATED_MEMBER, @@ -424,7 +424,7 @@ internal class TestProcessor (val context: Context) { testSuite: IrClassSymbol, owner: IrClass, functions: Collection, - ignored: Boolean) = WrappedClassConstructorDescriptor().let { descriptor -> + ignored: Boolean): IrConstructor = WrappedClassConstructorDescriptor().let { descriptor -> IrConstructorImpl( testSuite.owner.startOffset, testSuite.owner.endOffset, TEST_SUITE_GENERATED_MEMBER, @@ -477,7 +477,7 @@ internal class TestProcessor (val context: Context) { */ private fun buildClassSuite(testClass: IrClass, testCompanion: IrClass?, - functions: Collection) = WrappedClassDescriptor().let { descriptor -> + functions: Collection): IrClass = WrappedClassDescriptor().let { descriptor -> IrClassImpl( testClass.startOffset, testClass.endOffset, TEST_SUITE_CLASS,