ForLoopsLowering: Use @file:OptIn(ExperimentalUnsignedTypes::class)
instead of annotating declarations.
This commit is contained in:
committed by
Alexander Udalov
parent
b5b361bb09
commit
99856afc31
+2
-2
@@ -3,6 +3,8 @@
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@file:OptIn(ExperimentalUnsignedTypes::class)
|
||||
|
||||
package org.jetbrains.kotlin.backend.common.lower.loops
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.CommonBackendContext
|
||||
@@ -71,7 +73,6 @@ internal class ProgressionHeaderInfo(
|
||||
additionalNotEmptyCondition = additionalNotEmptyCondition
|
||||
) {
|
||||
|
||||
@ExperimentalUnsignedTypes
|
||||
val canOverflow: Boolean by lazy {
|
||||
if (canOverflow != null) return@lazy canOverflow
|
||||
|
||||
@@ -268,7 +269,6 @@ internal abstract class HeaderInfoBuilder(context: CommonBackendContext, private
|
||||
override fun visitElement(element: IrElement, data: IrCall?): HeaderInfo? = null
|
||||
|
||||
/** Builds a [HeaderInfo] for iterable expressions that are calls (e.g., `.reversed()`, `.indices`. */
|
||||
@ExperimentalUnsignedTypes
|
||||
override fun visitCall(iterable: IrCall, iteratorCall: IrCall?): HeaderInfo? {
|
||||
// Return the HeaderInfo from the first successful match.
|
||||
// First, try to match a `reversed()` or `withIndex()` call.
|
||||
|
||||
-2
@@ -270,7 +270,6 @@ internal class ProgressionLoopHeader(
|
||||
|
||||
private var loopVariable: IrVariable? = null
|
||||
|
||||
@ExperimentalUnsignedTypes
|
||||
override fun initializeIteration(
|
||||
loopVariable: IrVariable?,
|
||||
loopVariableComponents: Map<Int, IrVariable>,
|
||||
@@ -301,7 +300,6 @@ internal class ProgressionLoopHeader(
|
||||
listOfNotNull(loopVariable, incrementInductionVariable(this))
|
||||
}
|
||||
|
||||
@ExperimentalUnsignedTypes
|
||||
override fun buildLoop(builder: DeclarationIrBuilder, oldLoop: IrLoop, newBody: IrExpression?) =
|
||||
with(builder) {
|
||||
val newLoop = if (headerInfo.canOverflow) {
|
||||
|
||||
-3
@@ -85,7 +85,6 @@ internal class UntilHandler(private val context: CommonBackendContext, private v
|
||||
parameter(0) { it.type in progressionElementTypes }
|
||||
}
|
||||
|
||||
@ExperimentalUnsignedTypes
|
||||
override fun build(expression: IrCall, data: ProgressionType, scopeOwner: IrSymbol): HeaderInfo? =
|
||||
with(context.createIrBuilder(scopeOwner, expression.startOffset, expression.endOffset)) {
|
||||
with(data) {
|
||||
@@ -583,10 +582,8 @@ internal class DefaultProgressionHandler(private val context: CommonBackendConte
|
||||
|
||||
private val symbols = context.ir.symbols
|
||||
|
||||
@ExperimentalUnsignedTypes
|
||||
override fun matchIterable(expression: IrExpression) = ProgressionType.fromIrType(expression.type, symbols) != null
|
||||
|
||||
@ExperimentalUnsignedTypes
|
||||
override fun build(expression: IrExpression, scopeOwner: IrSymbol): HeaderInfo? =
|
||||
with(context.createIrBuilder(scopeOwner, expression.startOffset, expression.endOffset)) {
|
||||
// Directly use the `first/last/step` properties of the progression.
|
||||
|
||||
+2
-3
@@ -3,6 +3,8 @@
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@file:OptIn(ExperimentalUnsignedTypes::class)
|
||||
|
||||
package org.jetbrains.kotlin.backend.common.lower.loops
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.CommonBackendContext
|
||||
@@ -51,7 +53,6 @@ internal sealed class ProgressionType(
|
||||
}
|
||||
|
||||
companion object {
|
||||
@ExperimentalUnsignedTypes
|
||||
fun fromIrType(irType: IrType, symbols: Symbols<CommonBackendContext>): ProgressionType? = when {
|
||||
irType.isSubtypeOfClass(symbols.charProgression) -> CharProgressionType(symbols)
|
||||
irType.isSubtypeOfClass(symbols.intProgression) -> IntProgressionType(symbols)
|
||||
@@ -168,7 +169,6 @@ internal abstract class UnsignedProgressionType(
|
||||
}
|
||||
}
|
||||
|
||||
@ExperimentalUnsignedTypes
|
||||
internal class UIntProgressionType(symbols: Symbols<CommonBackendContext>) :
|
||||
UnsignedProgressionType(
|
||||
symbols,
|
||||
@@ -186,7 +186,6 @@ internal class UIntProgressionType(symbols: Symbols<CommonBackendContext>) :
|
||||
override fun DeclarationIrBuilder.zeroStepExpression() = irInt(0)
|
||||
}
|
||||
|
||||
@ExperimentalUnsignedTypes
|
||||
internal class ULongProgressionType(symbols: Symbols<CommonBackendContext>) :
|
||||
UnsignedProgressionType(
|
||||
symbols,
|
||||
|
||||
Reference in New Issue
Block a user