From 5d12603d73b0183757bbfa2e0b0477c6c5284d54 Mon Sep 17 00:00:00 2001 From: Georgy Bronnikov Date: Sat, 20 Jul 2019 21:27:20 +0300 Subject: [PATCH] JVM_IR: remove unused code --- .../lower/DefaultArgumentStubGenerator.kt | 31 ++++--------------- .../jvm/lower/CallableReferenceLowering.kt | 1 - .../lower/JvmDefaultConstructorLowering.kt | 1 - .../lower/JvmOverloadsAnnotationLowering.kt | 1 - 4 files changed, 6 insertions(+), 28 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/DefaultArgumentStubGenerator.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/DefaultArgumentStubGenerator.kt index 5f5ba5c51da..1dac5146e23 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/DefaultArgumentStubGenerator.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/lower/DefaultArgumentStubGenerator.kt @@ -203,8 +203,7 @@ val DEFAULT_DISPATCH_CALL = object : IrStatementOriginImpl("DEFAULT_DISPATCH_CAL open class DefaultParameterInjector( open val context: CommonBackendContext, private val skipInline: Boolean = true, - private val skipExternalMethods: Boolean = false, - private val shiftMaskForExtraArgs: Boolean = false + private val skipExternalMethods: Boolean = false ) : IrElementTransformerVoid(), BodyLoweringPass, FileLoweringPass { override fun lower(irFile: IrFile) { @@ -228,7 +227,7 @@ open class DefaultParameterInjector( if (argumentsCount == functionDeclaration.valueParameters.size) return expression - val (symbol, params) = parametersForCall(expression, shiftMaskForExtraArgs) + val (symbol, params) = parametersForCall(expression) val descriptor = symbol.descriptor val declaration = symbol.owner @@ -325,17 +324,10 @@ open class DefaultParameterInjector( } private fun parametersForCall( - expression: IrFunctionAccessExpression, - shiftMaskForExtraArgs: Boolean + expression: IrFunctionAccessExpression ): Pair>> { val declaration = expression.symbol.owner - val extraArgsShift = when { - shiftMaskForExtraArgs && declaration is IrConstructor && declaration.parentAsClass.isEnumClass -> 2 - shiftMaskForExtraArgs && declaration is IrConstructor && declaration.parentAsClass.isInner -> 1 // skip the `$outer` parameter - else -> 0 - } - val keyFunction = declaration.findSuperMethodWithDefaultArguments()!! val realFunction = keyFunction.generateDefaultsFunction( @@ -346,14 +338,13 @@ open class DefaultParameterInjector( ) log { "$declaration -> $realFunction" } - val maskValues = Array((declaration.valueParameters.size - extraArgsShift + 31) / 32) { 0 } + val maskValues = Array((declaration.valueParameters.size + 31) / 32) { 0 } val params = mutableListOf>() params += declaration.valueParameters.mapIndexed { argIndex, _ -> val valueArgument = expression.getValueArgument(argIndex) - val shiftedArgIndex = argIndex - extraArgsShift if (valueArgument == null) { - val maskIndex = shiftedArgIndex / 32 - maskValues[maskIndex] = maskValues[maskIndex] or (1 shl (shiftedArgIndex % 32)) + val maskIndex = argIndex / 32 + maskValues[maskIndex] = maskValues[maskIndex] or (1 shl (argIndex % 32)) } val valueParameterDeclaration = realFunction.valueParameters[argIndex] val defaultValueArgument = if (valueParameterDeclaration.varargElementType != null) { @@ -417,16 +408,6 @@ class DefaultParameterCleaner constructor(val context: CommonBackendContext) : F } } -// Some later lowerings produce bodies that need to undergo default parameter injection. -fun IrBody.insertCallsToDefaultArgumentStubs( - context: CommonBackendContext, - skipInline: Boolean = true, - skipExternalMethods: Boolean = false, - shiftMaskForExtraArgs: Boolean = false -) { - DefaultParameterInjector(context, skipInline, skipExternalMethods, shiftMaskForExtraArgs).lower(this) -} - // TODO this implementation is exponential private fun IrFunction.needsDefaultArgumentsLowering(skipInlineMethods: Boolean, skipExternalMethods: Boolean): Boolean { if (isInline && skipInlineMethods) return false diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/CallableReferenceLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/CallableReferenceLowering.kt index c6b0a464e2f..f78960d90bb 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/CallableReferenceLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/CallableReferenceLowering.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.backend.common.IrElementTransformerVoidWithContext import org.jetbrains.kotlin.backend.common.ir.copyTo import org.jetbrains.kotlin.backend.common.ir.createImplicitParameterDeclarationWithWrappedDescriptor import org.jetbrains.kotlin.backend.common.lower.createIrBuilder -import org.jetbrains.kotlin.backend.common.lower.insertCallsToDefaultArgumentStubs import org.jetbrains.kotlin.backend.common.lower.irBlock import org.jetbrains.kotlin.backend.common.lower.irIfThen import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmDefaultConstructorLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmDefaultConstructorLowering.kt index e248b02536f..957bf7d1a35 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmDefaultConstructorLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmDefaultConstructorLowering.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.backend.jvm.lower import org.jetbrains.kotlin.backend.common.ClassLoweringPass import org.jetbrains.kotlin.backend.common.ir.passTypeArgumentsFrom import org.jetbrains.kotlin.backend.common.lower.createIrBuilder -import org.jetbrains.kotlin.backend.common.lower.insertCallsToDefaultArgumentStubs import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase import org.jetbrains.kotlin.backend.jvm.JvmBackendContext import org.jetbrains.kotlin.ir.builders.declarations.addConstructor diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt index 0deea80b00a..3df38545e53 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmOverloadsAnnotationLowering.kt @@ -11,7 +11,6 @@ import org.jetbrains.kotlin.backend.common.descriptors.WrappedClassConstructorDe import org.jetbrains.kotlin.backend.common.descriptors.WrappedSimpleFunctionDescriptor import org.jetbrains.kotlin.backend.common.ir.copyTo import org.jetbrains.kotlin.backend.common.ir.copyTypeParametersFrom -import org.jetbrains.kotlin.backend.common.lower.insertCallsToDefaultArgumentStubs import org.jetbrains.kotlin.backend.jvm.JvmBackendContext import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET