From c02e92a5e06d8569e959de351f687360a5ed5def Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Thu, 29 Oct 2020 17:36:51 +0100 Subject: [PATCH] JVM IR: minor, use createJvmIrBuilder to simplify code --- .../kotlin/backend/jvm/JvmCachedDeclarations.kt | 5 ++--- .../kotlin/backend/jvm/lower/AssertionLowering.kt | 11 ++++++----- .../kotlin/backend/jvm/lower/ObjectClassLowering.kt | 13 +++++++++---- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmCachedDeclarations.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmCachedDeclarations.kt index 72770f35271..2b14698e19f 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmCachedDeclarations.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmCachedDeclarations.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.backend.jvm import org.jetbrains.kotlin.backend.common.ir.copyParameterDeclarationsFrom import org.jetbrains.kotlin.backend.common.ir.createImplicitParameterDeclarationWithWrappedDescriptor import org.jetbrains.kotlin.backend.common.ir.createStaticFunctionWithReceivers -import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.jvm.codegen.MethodSignatureMapper import org.jetbrains.kotlin.backend.jvm.codegen.isJvmInterface import org.jetbrains.kotlin.backend.jvm.ir.copyCorrespondingPropertyFrom @@ -193,8 +192,8 @@ class JvmCachedDeclarations( if (it.origin == JvmLoweredDeclarationOrigin.DEFAULT_IMPLS_BRIDGE_FOR_COMPATIBILITY && !it.annotations.hasAnnotation(DeprecationResolver.JAVA_DEPRECATED) ) { - this@JvmCachedDeclarations.context.createIrBuilder(it.symbol).run { - it.annotations += irCall(this@JvmCachedDeclarations.context.ir.symbols.javaLangDeprecatedConstructorWithDeprecatedFlag) + context.createJvmIrBuilder(it.symbol).run { + it.annotations += irCall(irSymbols.javaLangDeprecatedConstructorWithDeprecatedFlag) } } diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/AssertionLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/AssertionLowering.kt index 216685ff19a..8bc3ef29a5e 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/AssertionLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/AssertionLowering.kt @@ -12,6 +12,7 @@ import org.jetbrains.kotlin.backend.common.lower.* import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase import org.jetbrains.kotlin.backend.jvm.JvmBackendContext import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin +import org.jetbrains.kotlin.backend.jvm.ir.createJvmIrBuilder import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.codegen.ASSERTIONS_DISABLED_FIELD_NAME import org.jetbrains.kotlin.config.JVMAssertionsMode @@ -145,11 +146,11 @@ fun IrClass.buildAssertionsDisabledField(backendContext: JvmBackendContext, topL type = backendContext.irBuiltIns.booleanType isFinal = true isStatic = true - }.apply { - parent = this@buildAssertionsDisabledField - initializer = backendContext.createIrBuilder(this@buildAssertionsDisabledField.symbol).run { - at(this@apply) - irExprBody(irNot(irCall(backendContext.ir.symbols.desiredAssertionStatus).apply { + }.also { field -> + field.parent = this + field.initializer = backendContext.createJvmIrBuilder(this.symbol).run { + at(field) + irExprBody(irNot(irCall(irSymbols.desiredAssertionStatus).apply { dispatchReceiver = getJavaClass(backendContext, topLevelClass) })) } diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ObjectClassLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ObjectClassLowering.kt index 9138c5f9f50..5f2b38ec88f 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ObjectClassLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/ObjectClassLowering.kt @@ -10,14 +10,19 @@ import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase import org.jetbrains.kotlin.backend.jvm.JvmBackendContext +import org.jetbrains.kotlin.backend.jvm.ir.createJvmIrBuilder import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.builders.irCall import org.jetbrains.kotlin.ir.builders.irExprBody import org.jetbrains.kotlin.ir.builders.irGetField -import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.util.* +import org.jetbrains.kotlin.ir.declarations.IrClass +import org.jetbrains.kotlin.ir.declarations.IrDeclarationContainer +import org.jetbrains.kotlin.ir.declarations.IrFile +import org.jetbrains.kotlin.ir.util.constructors +import org.jetbrains.kotlin.ir.util.filterOutAnnotations +import org.jetbrains.kotlin.ir.util.isObject import org.jetbrains.kotlin.resolve.deprecation.DeprecationResolver internal val objectClassPhase = makeIrFilePhase( @@ -72,10 +77,10 @@ private class ObjectClassLowering(val context: JvmBackendContext) : IrElementTra if (!context.state.languageVersionSettings.supportsFeature(LanguageFeature.ProperVisibilityForCompanionObjectInstanceField) && (irClass.visibility == DescriptorVisibilities.PRIVATE || irClass.visibility == DescriptorVisibilities.PROTECTED) ) { - context.createIrBuilder(irClass.symbol).run { + context.createJvmIrBuilder(irClass.symbol).run { publicInstanceField.annotations = filterOutAnnotations(DeprecationResolver.JAVA_DEPRECATED, publicInstanceField.annotations) + - irCall(this@ObjectClassLowering.context.ir.symbols.javaLangDeprecatedConstructorWithDeprecatedFlag) + irCall(irSymbols.javaLangDeprecatedConstructorWithDeprecatedFlag) } }