ForLoopsLowering: Eliminate use of @ObsoleteDescriptorBasedAPI.

This commit is contained in:
Mark Punzalan
2020-07-16 01:04:10 -07:00
committed by Alexander Udalov
parent b1ce21bc55
commit 132960a695
3 changed files with 3 additions and 15 deletions
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor
import org.jetbrains.kotlin.descriptors.findClassAcrossModuleDependencies import org.jetbrains.kotlin.descriptors.findClassAcrossModuleDependencies
import org.jetbrains.kotlin.incremental.components.NoLookupLocation import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrFunction
import org.jetbrains.kotlin.ir.declarations.IrModuleFragment import org.jetbrains.kotlin.ir.declarations.IrModuleFragment
import org.jetbrains.kotlin.ir.declarations.IrPackageFragment import org.jetbrains.kotlin.ir.declarations.IrPackageFragment
@@ -111,9 +110,6 @@ open class BuiltinSymbolsBase(protected val irBuiltIns: IrBuiltIns, protected va
val longProgression = progression("LongProgression") val longProgression = progression("LongProgression")
val progressionClasses = listOfNotNull(charProgression, intProgression, longProgression, uIntProgression, uLongProgression) val progressionClasses = listOfNotNull(charProgression, intProgression, longProgression, uIntProgression, uLongProgression)
@ObsoleteDescriptorBasedAPI
val progressionClassesTypes = progressionClasses.map { it.descriptor.defaultType }.toSet()
val getProgressionLastElementByReturnType = builtInsPackage("kotlin", "internal") val getProgressionLastElementByReturnType = builtInsPackage("kotlin", "internal")
.getContributedFunctions(Name.identifier("getProgressionLastElement"), NoLookupLocation.FROM_BACKEND) .getContributedFunctions(Name.identifier("getProgressionLastElement"), NoLookupLocation.FROM_BACKEND)
.filter { it.containingDeclaration !is BuiltInsPackageFragment } .filter { it.containingDeclaration !is BuiltInsPackageFragment }
@@ -155,9 +151,6 @@ open class BuiltinSymbolsBase(protected val irBuiltIns: IrBuiltIns, protected va
val integerClasses = listOf(byte, short, int, long) val integerClasses = listOf(byte, short, int, long)
@ObsoleteDescriptorBasedAPI
val integerClassesTypes = integerClasses.map { it.descriptor.defaultType }
val arrayOf = getSimpleFunction(Name.identifier("arrayOf")) { val arrayOf = getSimpleFunction(Name.identifier("arrayOf")) {
it.extensionReceiverParameter == null && it.dispatchReceiverParameter == null && it.valueParameters.size == 1 && it.extensionReceiverParameter == null && it.dispatchReceiverParameter == null && it.valueParameters.size == 1 &&
it.valueParameters[0].isVararg it.valueParameters[0].isVararg
@@ -10,7 +10,6 @@ package org.jetbrains.kotlin.backend.common.lower.loops
import org.jetbrains.kotlin.backend.common.CommonBackendContext import org.jetbrains.kotlin.backend.common.CommonBackendContext
import org.jetbrains.kotlin.backend.common.ir.Symbols import org.jetbrains.kotlin.backend.common.ir.Symbols
import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.builders.irChar import org.jetbrains.kotlin.ir.builders.irChar
import org.jetbrains.kotlin.ir.builders.irInt import org.jetbrains.kotlin.ir.builders.irInt
import org.jetbrains.kotlin.ir.builders.irLong import org.jetbrains.kotlin.ir.builders.irLong
@@ -190,7 +189,6 @@ internal abstract class UnsignedProgressionType(
} }
} }
@OptIn(ObsoleteDescriptorBasedAPI::class)
internal class UIntProgressionType(symbols: Symbols<CommonBackendContext>) : internal class UIntProgressionType(symbols: Symbols<CommonBackendContext>) :
UnsignedProgressionType( UnsignedProgressionType(
symbols, symbols,
@@ -208,7 +206,6 @@ internal class UIntProgressionType(symbols: Symbols<CommonBackendContext>) :
override fun DeclarationIrBuilder.zeroStepExpression() = irInt(0) override fun DeclarationIrBuilder.zeroStepExpression() = irInt(0)
} }
@OptIn(ObsoleteDescriptorBasedAPI::class)
internal class ULongProgressionType(symbols: Symbols<CommonBackendContext>) : internal class ULongProgressionType(symbols: Symbols<CommonBackendContext>) :
UnsignedProgressionType( UnsignedProgressionType(
symbols, symbols,
@@ -10,18 +10,16 @@ import org.jetbrains.kotlin.backend.common.lower.loops.HeaderInfoBuilder
import org.jetbrains.kotlin.backend.common.lower.loops.HeaderInfoFromCallHandler import org.jetbrains.kotlin.backend.common.lower.loops.HeaderInfoFromCallHandler
import org.jetbrains.kotlin.backend.common.lower.matchers.Quantifier import org.jetbrains.kotlin.backend.common.lower.matchers.Quantifier
import org.jetbrains.kotlin.backend.common.lower.matchers.createIrCallMatcher import org.jetbrains.kotlin.backend.common.lower.matchers.createIrCallMatcher
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.expressions.IrCall import org.jetbrains.kotlin.ir.expressions.IrCall
import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.symbols.IrSymbol
import org.jetbrains.kotlin.ir.types.toKotlinType import org.jetbrains.kotlin.ir.types.defaultType
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
/** Builds a [HeaderInfo] for calls to reverse an iterable. */ /** Builds a [HeaderInfo] for calls to reverse an iterable. */
@OptIn(ObsoleteDescriptorBasedAPI::class)
internal class ReversedHandler(context: CommonBackendContext, private val visitor: HeaderInfoBuilder) : internal class ReversedHandler(context: CommonBackendContext, private val visitor: HeaderInfoBuilder) :
HeaderInfoFromCallHandler<Nothing?> { HeaderInfoFromCallHandler<Nothing?> {
private val symbols = context.ir.symbols private val progressionClassesTypes = context.ir.symbols.progressionClasses.map { it.defaultType }.toSet()
// Use Quantifier.ANY so we can handle all reversed iterables in the same manner. // Use Quantifier.ANY so we can handle all reversed iterables in the same manner.
override val matcher = override val matcher =
@@ -29,7 +27,7 @@ internal class ReversedHandler(context: CommonBackendContext, private val visito
// Matcher for reversed progression. // Matcher for reversed progression.
callee { callee {
fqName { it == FqName("kotlin.ranges.reversed") } fqName { it == FqName("kotlin.ranges.reversed") }
extensionReceiver { it != null && it.type.toKotlinType() in symbols.progressionClassesTypes } extensionReceiver { it != null && it.type in progressionClassesTypes }
parameterCount { it == 0 } parameterCount { it == 0 }
} }