diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/BoxingInterpreter.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/BoxingInterpreter.kt index 062db855371..b27fa262e1a 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/BoxingInterpreter.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/BoxingInterpreter.kt @@ -19,13 +19,12 @@ package org.jetbrains.kotlin.codegen.optimization.boxing import com.google.common.collect.ImmutableSet import org.jetbrains.kotlin.codegen.AsmUtil import org.jetbrains.kotlin.codegen.intrinsics.IntrinsicMethods -import org.jetbrains.kotlin.codegen.isRangeOrProgression +import org.jetbrains.kotlin.codegen.range.isRangeOrProgression import org.jetbrains.kotlin.codegen.optimization.common.OptimizationBasicInterpreter import org.jetbrains.kotlin.codegen.optimization.common.StrictBasicValue import org.jetbrains.kotlin.codegen.state.GenerationState import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.resolve.InlineClassDescriptorResolver import org.jetbrains.kotlin.resolve.jvm.AsmTypes import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType import org.jetbrains.org.objectweb.asm.Opcodes diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/ProgressionIteratorBasicValue.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/ProgressionIteratorBasicValue.java index ac5c9239312..40bbca8950d 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/ProgressionIteratorBasicValue.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/boxing/ProgressionIteratorBasicValue.java @@ -20,9 +20,9 @@ import com.google.common.collect.ImmutableMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.builtins.PrimitiveType; -import org.jetbrains.kotlin.codegen.RangeCodegenUtilKt; import org.jetbrains.kotlin.codegen.intrinsics.IteratorNext; import org.jetbrains.kotlin.codegen.optimization.common.StrictBasicValue; +import org.jetbrains.kotlin.codegen.range.RangeCodegenUtilKt; import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType; diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/range/ComparableRangeLiteralRangeValue.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/range/ComparableRangeLiteralRangeValue.kt index 19bc58ebd31..0655e1e3c3d 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/range/ComparableRangeLiteralRangeValue.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/range/ComparableRangeLiteralRangeValue.kt @@ -19,7 +19,6 @@ package org.jetbrains.kotlin.codegen.range import org.jetbrains.kotlin.codegen.ExpressionCodegen import org.jetbrains.kotlin.codegen.generateCallReceiver import org.jetbrains.kotlin.codegen.generateCallSingleArgument -import org.jetbrains.kotlin.codegen.isClosedRangeContains import org.jetbrains.kotlin.codegen.range.forLoop.IteratorForLoopGenerator import org.jetbrains.kotlin.codegen.range.inExpression.InContinuousRangeOfComparableExpressionGenerator import org.jetbrains.kotlin.descriptors.CallableDescriptor diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/RangeCodegenUtil.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/range/RangeCodegenUtil.kt similarity index 97% rename from compiler/backend/src/org/jetbrains/kotlin/codegen/RangeCodegenUtil.kt rename to compiler/backend/src/org/jetbrains/kotlin/codegen/range/RangeCodegenUtil.kt index f382d63b2dd..510d742e897 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/RangeCodegenUtil.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/range/RangeCodegenUtil.kt @@ -3,7 +3,7 @@ * that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.codegen +package org.jetbrains.kotlin.codegen.range import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns.RANGES_PACKAGE_FQ_NAME @@ -41,10 +41,16 @@ fun isPrimitiveProgression(rangeType: KotlinType) = !rangeType.isMarkedNullable && getPrimitiveProgressionElementType(rangeType) != null fun getPrimitiveRangeElementType(rangeType: KotlinType): PrimitiveType? = - getPrimitiveRangeOrProgressionElementType(rangeType, RANGE_TO_ELEMENT_TYPE) + getPrimitiveRangeOrProgressionElementType( + rangeType, + RANGE_TO_ELEMENT_TYPE + ) private fun getPrimitiveProgressionElementType(rangeType: KotlinType) = - getPrimitiveRangeOrProgressionElementType(rangeType, PROGRESSION_TO_ELEMENT_TYPE) + getPrimitiveRangeOrProgressionElementType( + rangeType, + PROGRESSION_TO_ELEMENT_TYPE + ) private fun getPrimitiveRangeOrProgressionElementType( rangeOrProgression: KotlinType, diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/range/RangeValues.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/range/RangeValues.kt index d044f3c92dd..0ed72b87272 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/range/RangeValues.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/range/RangeValues.kt @@ -38,9 +38,11 @@ fun ExpressionCodegen.createRangeValueForExpression(rangeExpression: KtExpressio // also look into org.jetbrains.kotlin.generators.tests and update related testData generators // (e.g., GenerateInRangeExpressionTestData). - getResolvedCallForRangeExpression(bindingContext, rangeExpression)?.let { - createIntrinsifiedRangeValueOrNull(it)?.let { - return it + val resolvedCall = getResolvedCallForRangeExpression(bindingContext, rangeExpression) + if (resolvedCall != null) { + val intrinsicRangeValue = createIntrinsifiedRangeValueOrNull(resolvedCall) + if (intrinsicRangeValue != null) { + return intrinsicRangeValue } } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/range/comparison/ComparisonGenerator.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/range/comparison/ComparisonGenerator.kt index 4e6c05422da..71275d11076 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/range/comparison/ComparisonGenerator.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/range/comparison/ComparisonGenerator.kt @@ -17,7 +17,7 @@ package org.jetbrains.kotlin.codegen.range.comparison import org.jetbrains.kotlin.codegen.ExpressionCodegen -import org.jetbrains.kotlin.codegen.getRangeOrProgressionElementType +import org.jetbrains.kotlin.codegen.range.getRangeOrProgressionElementType import org.jetbrains.kotlin.descriptors.CallableDescriptor import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall import org.jetbrains.org.objectweb.asm.Label diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/range/forLoop/AbstractForLoopGenerator.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/range/forLoop/AbstractForLoopGenerator.kt index 5e05a07390b..8f98dc86f06 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/range/forLoop/AbstractForLoopGenerator.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/range/forLoop/AbstractForLoopGenerator.kt @@ -19,7 +19,7 @@ package org.jetbrains.kotlin.codegen.range.forLoop import org.jetbrains.kotlin.codegen.ExpressionCodegen import org.jetbrains.kotlin.codegen.StackValue import org.jetbrains.kotlin.codegen.filterOutDescriptorsWithSpecialNames -import org.jetbrains.kotlin.codegen.getElementType +import org.jetbrains.kotlin.codegen.range.getElementType import org.jetbrains.kotlin.psi.KtDestructuringDeclaration import org.jetbrains.kotlin.psi.KtForExpression import org.jetbrains.kotlin.resolve.BindingContext