Minor: move RangeCodegenUtil to range package
This commit is contained in:
+1
-2
@@ -19,13 +19,12 @@ package org.jetbrains.kotlin.codegen.optimization.boxing
|
|||||||
import com.google.common.collect.ImmutableSet
|
import com.google.common.collect.ImmutableSet
|
||||||
import org.jetbrains.kotlin.codegen.AsmUtil
|
import org.jetbrains.kotlin.codegen.AsmUtil
|
||||||
import org.jetbrains.kotlin.codegen.intrinsics.IntrinsicMethods
|
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.OptimizationBasicInterpreter
|
||||||
import org.jetbrains.kotlin.codegen.optimization.common.StrictBasicValue
|
import org.jetbrains.kotlin.codegen.optimization.common.StrictBasicValue
|
||||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||||
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
||||||
import org.jetbrains.kotlin.name.FqName
|
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.AsmTypes
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType
|
||||||
import org.jetbrains.org.objectweb.asm.Opcodes
|
import org.jetbrains.org.objectweb.asm.Opcodes
|
||||||
|
|||||||
+1
-1
@@ -20,9 +20,9 @@ import com.google.common.collect.ImmutableMap;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.builtins.PrimitiveType;
|
import org.jetbrains.kotlin.builtins.PrimitiveType;
|
||||||
import org.jetbrains.kotlin.codegen.RangeCodegenUtilKt;
|
|
||||||
import org.jetbrains.kotlin.codegen.intrinsics.IteratorNext;
|
import org.jetbrains.kotlin.codegen.intrinsics.IteratorNext;
|
||||||
import org.jetbrains.kotlin.codegen.optimization.common.StrictBasicValue;
|
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.FqName;
|
||||||
import org.jetbrains.kotlin.name.Name;
|
import org.jetbrains.kotlin.name.Name;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType;
|
import org.jetbrains.kotlin.resolve.jvm.JvmPrimitiveType;
|
||||||
|
|||||||
-1
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.codegen.range
|
|||||||
import org.jetbrains.kotlin.codegen.ExpressionCodegen
|
import org.jetbrains.kotlin.codegen.ExpressionCodegen
|
||||||
import org.jetbrains.kotlin.codegen.generateCallReceiver
|
import org.jetbrains.kotlin.codegen.generateCallReceiver
|
||||||
import org.jetbrains.kotlin.codegen.generateCallSingleArgument
|
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.forLoop.IteratorForLoopGenerator
|
||||||
import org.jetbrains.kotlin.codegen.range.inExpression.InContinuousRangeOfComparableExpressionGenerator
|
import org.jetbrains.kotlin.codegen.range.inExpression.InContinuousRangeOfComparableExpressionGenerator
|
||||||
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
import org.jetbrains.kotlin.descriptors.CallableDescriptor
|
||||||
|
|||||||
+9
-3
@@ -3,7 +3,7 @@
|
|||||||
* that can be found in the license/LICENSE.txt file.
|
* 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
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns.RANGES_PACKAGE_FQ_NAME
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns.RANGES_PACKAGE_FQ_NAME
|
||||||
@@ -41,10 +41,16 @@ fun isPrimitiveProgression(rangeType: KotlinType) =
|
|||||||
!rangeType.isMarkedNullable && getPrimitiveProgressionElementType(rangeType) != null
|
!rangeType.isMarkedNullable && getPrimitiveProgressionElementType(rangeType) != null
|
||||||
|
|
||||||
fun getPrimitiveRangeElementType(rangeType: KotlinType): PrimitiveType? =
|
fun getPrimitiveRangeElementType(rangeType: KotlinType): PrimitiveType? =
|
||||||
getPrimitiveRangeOrProgressionElementType(rangeType, RANGE_TO_ELEMENT_TYPE)
|
getPrimitiveRangeOrProgressionElementType(
|
||||||
|
rangeType,
|
||||||
|
RANGE_TO_ELEMENT_TYPE
|
||||||
|
)
|
||||||
|
|
||||||
private fun getPrimitiveProgressionElementType(rangeType: KotlinType) =
|
private fun getPrimitiveProgressionElementType(rangeType: KotlinType) =
|
||||||
getPrimitiveRangeOrProgressionElementType(rangeType, PROGRESSION_TO_ELEMENT_TYPE)
|
getPrimitiveRangeOrProgressionElementType(
|
||||||
|
rangeType,
|
||||||
|
PROGRESSION_TO_ELEMENT_TYPE
|
||||||
|
)
|
||||||
|
|
||||||
private fun getPrimitiveRangeOrProgressionElementType(
|
private fun getPrimitiveRangeOrProgressionElementType(
|
||||||
rangeOrProgression: KotlinType,
|
rangeOrProgression: KotlinType,
|
||||||
@@ -38,9 +38,11 @@ fun ExpressionCodegen.createRangeValueForExpression(rangeExpression: KtExpressio
|
|||||||
// also look into org.jetbrains.kotlin.generators.tests and update related testData generators
|
// also look into org.jetbrains.kotlin.generators.tests and update related testData generators
|
||||||
// (e.g., GenerateInRangeExpressionTestData).
|
// (e.g., GenerateInRangeExpressionTestData).
|
||||||
|
|
||||||
getResolvedCallForRangeExpression(bindingContext, rangeExpression)?.let {
|
val resolvedCall = getResolvedCallForRangeExpression(bindingContext, rangeExpression)
|
||||||
createIntrinsifiedRangeValueOrNull(it)?.let {
|
if (resolvedCall != null) {
|
||||||
return it
|
val intrinsicRangeValue = createIntrinsifiedRangeValueOrNull(resolvedCall)
|
||||||
|
if (intrinsicRangeValue != null) {
|
||||||
|
return intrinsicRangeValue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.codegen.range.comparison
|
package org.jetbrains.kotlin.codegen.range.comparison
|
||||||
|
|
||||||
import org.jetbrains.kotlin.codegen.ExpressionCodegen
|
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.descriptors.CallableDescriptor
|
||||||
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
||||||
import org.jetbrains.org.objectweb.asm.Label
|
import org.jetbrains.org.objectweb.asm.Label
|
||||||
|
|||||||
+1
-1
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.codegen.range.forLoop
|
|||||||
import org.jetbrains.kotlin.codegen.ExpressionCodegen
|
import org.jetbrains.kotlin.codegen.ExpressionCodegen
|
||||||
import org.jetbrains.kotlin.codegen.StackValue
|
import org.jetbrains.kotlin.codegen.StackValue
|
||||||
import org.jetbrains.kotlin.codegen.filterOutDescriptorsWithSpecialNames
|
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.KtDestructuringDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtForExpression
|
import org.jetbrains.kotlin.psi.KtForExpression
|
||||||
import org.jetbrains.kotlin.resolve.BindingContext
|
import org.jetbrains.kotlin.resolve.BindingContext
|
||||||
|
|||||||
Reference in New Issue
Block a user