JVM IR: Implement the new inline class ABI
This commit is contained in:
committed by
Dmitry Petrov
parent
e60a32e8d3
commit
dc0ef996b7
+2
-1
@@ -110,7 +110,8 @@ internal fun IrFunction.isInvokeSuspendOfContinuation(): Boolean =
|
|||||||
name.asString() == INVOKE_SUSPEND_METHOD_NAME && parentAsClass.origin == JvmLoweredDeclarationOrigin.CONTINUATION_CLASS
|
name.asString() == INVOKE_SUSPEND_METHOD_NAME && parentAsClass.origin == JvmLoweredDeclarationOrigin.CONTINUATION_CLASS
|
||||||
|
|
||||||
private fun IrFunction.isInvokeOfSuspendCallableReference(): Boolean =
|
private fun IrFunction.isInvokeOfSuspendCallableReference(): Boolean =
|
||||||
isSuspend && name.asString() == "invoke" && parentAsClass.origin == JvmLoweredDeclarationOrigin.FUNCTION_REFERENCE_IMPL
|
isSuspend && name.asString().let { name -> name == "invoke" || name.startsWith("invoke-") }
|
||||||
|
&& parentAsClass.origin == JvmLoweredDeclarationOrigin.FUNCTION_REFERENCE_IMPL
|
||||||
|
|
||||||
private fun IrFunction.isBridgeToSuspendImplMethod(): Boolean =
|
private fun IrFunction.isBridgeToSuspendImplMethod(): Boolean =
|
||||||
isSuspend && this is IrSimpleFunction && parentAsClass.functions.any {
|
isSuspend && this is IrSimpleFunction && parentAsClass.functions.any {
|
||||||
|
|||||||
+3
-9
@@ -160,21 +160,15 @@ class MethodSignatureMapper(private val context: JvmBackendContext) {
|
|||||||
function is IrConstructor || (function.returnType.isUnit() && !function.isGetter)
|
function is IrConstructor || (function.returnType.isUnit() && !function.isGetter)
|
||||||
|
|
||||||
// Copied from KotlinTypeMapper.forceBoxedReturnType.
|
// Copied from KotlinTypeMapper.forceBoxedReturnType.
|
||||||
private fun forceBoxedReturnType(function: IrFunction): Boolean {
|
private fun forceBoxedReturnType(function: IrFunction): Boolean = isBoxMethodForInlineClass(function) ||
|
||||||
if (isBoxMethodForInlineClass(function)) return true
|
function is IrSimpleFunction && function.returnType.isPrimitiveType() &&
|
||||||
|
function.allOverridden().any { !it.returnType.isPrimitiveType() }
|
||||||
return isJvmPrimitiveOrInlineClass(function.returnType) &&
|
|
||||||
function is IrSimpleFunction && function.allOverridden().any { !isJvmPrimitiveOrInlineClass(it.returnType) }
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun isBoxMethodForInlineClass(function: IrFunction): Boolean =
|
private fun isBoxMethodForInlineClass(function: IrFunction): Boolean =
|
||||||
function.parent.let { it is IrClass && it.isInline } &&
|
function.parent.let { it is IrClass && it.isInline } &&
|
||||||
function.origin == JvmLoweredDeclarationOrigin.SYNTHETIC_INLINE_CLASS_MEMBER &&
|
function.origin == JvmLoweredDeclarationOrigin.SYNTHETIC_INLINE_CLASS_MEMBER &&
|
||||||
function.name.asString() == "box-impl"
|
function.name.asString() == "box-impl"
|
||||||
|
|
||||||
private fun isJvmPrimitiveOrInlineClass(type: IrType): Boolean =
|
|
||||||
type.isPrimitiveType() || type.getClass()?.isInline == true
|
|
||||||
|
|
||||||
fun mapSignatureSkipGeneric(function: IrFunction): JvmMethodSignature =
|
fun mapSignatureSkipGeneric(function: IrFunction): JvmMethodSignature =
|
||||||
mapSignature(function, true)
|
mapSignature(function, true)
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.backend.jvm.lower.inlineclasses.unboxInlineClass
|
|||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
import org.jetbrains.kotlin.codegen.inline.coroutines.FOR_INLINE_SUFFIX
|
import org.jetbrains.kotlin.codegen.inline.coroutines.FOR_INLINE_SUFFIX
|
||||||
import org.jetbrains.kotlin.config.JvmDefaultMode
|
import org.jetbrains.kotlin.config.JvmDefaultMode
|
||||||
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.descriptors.deserialization.PLATFORM_DEPENDENT_ANNOTATION_FQ_NAME
|
import org.jetbrains.kotlin.descriptors.deserialization.PLATFORM_DEPENDENT_ANNOTATION_FQ_NAME
|
||||||
@@ -39,6 +40,7 @@ import org.jetbrains.kotlin.ir.types.impl.originalKotlinType
|
|||||||
import org.jetbrains.kotlin.ir.util.*
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid
|
||||||
import org.jetbrains.kotlin.load.java.JavaVisibilities
|
import org.jetbrains.kotlin.load.java.JavaVisibilities
|
||||||
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil
|
import org.jetbrains.kotlin.metadata.jvm.deserialization.JvmProtoBufUtil
|
||||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||||
import org.jetbrains.kotlin.resolve.jvm.annotations.JVM_DEFAULT_FQ_NAME
|
import org.jetbrains.kotlin.resolve.jvm.annotations.JVM_DEFAULT_FQ_NAME
|
||||||
@@ -327,3 +329,12 @@ fun IrSimpleFunction.copyCorrespondingPropertyFrom(source: IrSimpleFunction) {
|
|||||||
}
|
}
|
||||||
}.symbol
|
}.symbol
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun IrProperty.needsAccessor(accessor: IrSimpleFunction): Boolean = when {
|
||||||
|
// Properties in annotation classes become abstract methods named after the property.
|
||||||
|
(parent as? IrClass)?.kind == ClassKind.ANNOTATION_CLASS -> true
|
||||||
|
// @JvmField properties have no getters/setters
|
||||||
|
backingField?.hasAnnotation(JvmAbi.JVM_FIELD_ANNOTATION_FQ_NAME) == true -> false
|
||||||
|
// We do not produce default accessors for private fields
|
||||||
|
else -> accessor.origin != IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR || !Visibilities.isPrivate(accessor.visibility)
|
||||||
|
}
|
||||||
|
|||||||
+4
-3
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
|||||||
import org.jetbrains.kotlin.backend.jvm.codegen.isJvmInterface
|
import org.jetbrains.kotlin.backend.jvm.codegen.isJvmInterface
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.copyCorrespondingPropertyFrom
|
import org.jetbrains.kotlin.backend.jvm.ir.copyCorrespondingPropertyFrom
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.eraseTypeParameters
|
import org.jetbrains.kotlin.backend.jvm.ir.eraseTypeParameters
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.erasedUpperBound
|
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.isJvmAbstract
|
import org.jetbrains.kotlin.backend.jvm.ir.isJvmAbstract
|
||||||
import org.jetbrains.kotlin.backend.jvm.lower.inlineclasses.unboxInlineClass
|
import org.jetbrains.kotlin.backend.jvm.lower.inlineclasses.unboxInlineClass
|
||||||
import org.jetbrains.kotlin.codegen.AsmUtil
|
import org.jetbrains.kotlin.codegen.AsmUtil
|
||||||
@@ -178,8 +177,10 @@ private class BridgeLowering(val context: JvmBackendContext) : FileLoweringPass,
|
|||||||
// For lambda classes, we move overrides from the `invoke` function to its bridge. This will allow us to avoid boxing
|
// For lambda classes, we move overrides from the `invoke` function to its bridge. This will allow us to avoid boxing
|
||||||
// the return type of `invoke` in codegen for lambdas with primitive return type. This does not apply to lambdas returning
|
// the return type of `invoke` in codegen for lambdas with primitive return type. This does not apply to lambdas returning
|
||||||
// inline class types erasing to Any, which we need to box.
|
// inline class types erasing to Any, which we need to box.
|
||||||
if (member.name == OperatorNameConventions.INVOKE && declaration.origin == JvmLoweredDeclarationOrigin.LAMBDA_IMPL
|
if (member.name == OperatorNameConventions.INVOKE
|
||||||
&& !member.returnType.isInlineClassErasingToAny) {
|
&& (declaration.origin == JvmLoweredDeclarationOrigin.LAMBDA_IMPL || declaration.origin == JvmLoweredDeclarationOrigin.FUNCTION_REFERENCE_IMPL)
|
||||||
|
&& !member.returnType.isInlineClassErasingToAny
|
||||||
|
) {
|
||||||
member.overriddenSymbols = listOf()
|
member.overriddenSymbols = listOf()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-1
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.backend.common.phaser.makeIrFilePhase
|
|||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.*
|
import org.jetbrains.kotlin.backend.jvm.ir.*
|
||||||
|
import org.jetbrains.kotlin.backend.jvm.lower.inlineclasses.InlineClassAbi
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||||
@@ -369,7 +370,12 @@ internal class FunctionReferenceLowering(private val context: JvmBackendContext)
|
|||||||
private fun createInvokeMethod(receiverVar: IrValueDeclaration?): IrSimpleFunction =
|
private fun createInvokeMethod(receiverVar: IrValueDeclaration?): IrSimpleFunction =
|
||||||
functionReferenceClass.addFunction {
|
functionReferenceClass.addFunction {
|
||||||
setSourceRange(if (isLambda) callee else irFunctionReference)
|
setSourceRange(if (isLambda) callee else irFunctionReference)
|
||||||
name = superMethod.owner.name
|
name = if (callee.returnType.erasedUpperBound.isInline) {
|
||||||
|
// For functions with inline class return type we need to mangle the invoke method.
|
||||||
|
// Otherwise, bridge lowering may fail to generate bridges for inline class types erasing to Any.
|
||||||
|
val suffix = InlineClassAbi.returnHashSuffix(callee)
|
||||||
|
Name.identifier("${superMethod.owner.name.asString()}-${suffix}")
|
||||||
|
} else superMethod.owner.name
|
||||||
returnType = callee.returnType
|
returnType = callee.returnType
|
||||||
isSuspend = callee.isSuspend
|
isSuspend = callee.isSuspend
|
||||||
}.apply {
|
}.apply {
|
||||||
|
|||||||
+3
@@ -276,6 +276,9 @@ private class JvmInlineClassLowering(private val context: JvmBackendContext) : F
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitFunctionReference(expression: IrFunctionReference): IrExpression {
|
override fun visitFunctionReference(expression: IrFunctionReference): IrExpression {
|
||||||
|
if (expression.origin == InlineClassAbi.UNMANGLED_FUNCTION_REFERENCE)
|
||||||
|
return super.visitFunctionReference(expression)
|
||||||
|
|
||||||
val function = context.inlineClassReplacements.getReplacementFunction(expression.symbol.owner)
|
val function = context.inlineClassReplacements.getReplacementFunction(expression.symbol.owner)
|
||||||
?: return super.visitFunctionReference(expression)
|
?: return super.visitFunctionReference(expression)
|
||||||
|
|
||||||
|
|||||||
+3
-9
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.backend.common.ir.copyTo
|
|||||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
||||||
|
import org.jetbrains.kotlin.backend.jvm.ir.needsAccessor
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
@@ -118,15 +119,8 @@ class JvmPropertiesLowering(private val backendContext: JvmBackendContext) : IrE
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun shouldSubstituteAccessorWithField(property: IrProperty, accessor: IrSimpleFunction?): Boolean {
|
private fun shouldSubstituteAccessorWithField(property: IrProperty, accessor: IrSimpleFunction?): Boolean =
|
||||||
if (accessor == null) return false
|
accessor != null && !property.needsAccessor(accessor)
|
||||||
|
|
||||||
if ((property.parent as? IrClass)?.kind == ClassKind.ANNOTATION_CLASS) return false
|
|
||||||
|
|
||||||
if (property.backingField?.hasAnnotation(JvmAbi.JVM_FIELD_ANNOTATION_FQ_NAME) == true) return true
|
|
||||||
|
|
||||||
return accessor.origin == IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR && Visibilities.isPrivate(accessor.visibility)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun createSyntheticMethodForAnnotations(declaration: IrProperty): IrFunctionImpl =
|
private fun createSyntheticMethodForAnnotations(declaration: IrProperty): IrFunctionImpl =
|
||||||
buildFun {
|
buildFun {
|
||||||
|
|||||||
+23
-14
@@ -17,9 +17,11 @@ import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
|||||||
import org.jetbrains.kotlin.backend.jvm.ir.JvmIrBuilder
|
import org.jetbrains.kotlin.backend.jvm.ir.JvmIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.createJvmIrBuilder
|
import org.jetbrains.kotlin.backend.jvm.ir.createJvmIrBuilder
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.irArrayOf
|
import org.jetbrains.kotlin.backend.jvm.ir.irArrayOf
|
||||||
|
import org.jetbrains.kotlin.backend.jvm.ir.needsAccessor
|
||||||
import org.jetbrains.kotlin.backend.jvm.lower.FunctionReferenceLowering.Companion.calculateOwner
|
import org.jetbrains.kotlin.backend.jvm.lower.FunctionReferenceLowering.Companion.calculateOwner
|
||||||
import org.jetbrains.kotlin.backend.jvm.lower.FunctionReferenceLowering.Companion.calculateOwnerKClass
|
import org.jetbrains.kotlin.backend.jvm.lower.FunctionReferenceLowering.Companion.calculateOwnerKClass
|
||||||
import org.jetbrains.kotlin.backend.jvm.lower.FunctionReferenceLowering.Companion.kClassToJavaClass
|
import org.jetbrains.kotlin.backend.jvm.lower.FunctionReferenceLowering.Companion.kClassToJavaClass
|
||||||
|
import org.jetbrains.kotlin.backend.jvm.lower.inlineclasses.InlineClassAbi
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
@@ -106,19 +108,26 @@ internal class PropertyReferenceLowering(val context: JvmBackendContext) : Class
|
|||||||
private fun IrBuilderWithScope.computeSignatureString(expression: IrCallableReference): IrExpression {
|
private fun IrBuilderWithScope.computeSignatureString(expression: IrCallableReference): IrExpression {
|
||||||
return expression.getter?.let { getter ->
|
return expression.getter?.let { getter ->
|
||||||
localPropertyIndices[getter]?.let { irString("<v#$it>") }
|
localPropertyIndices[getter]?.let { irString("<v#$it>") }
|
||||||
?: if (getter.owner.origin == IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR && getter.owner.parentAsClass.isInline) {
|
?: irCall(signatureStringIntrinsic).apply {
|
||||||
// Default property accessor in an inline class. Compute the signature now, so that we will not
|
// Work around for differences between `RuntimeTypeMapper.KotlinProperty` and the real Kotlin type mapper.
|
||||||
// get into trouble if the getter is transformed to a static method by inline classes lowering.
|
// Most notably, the runtime type mapper does not perform inline class name mangling. This is usually not
|
||||||
irString(getter.owner.signature)
|
// a problem, since we will produce a getter signature as part of the Kotlin metadata, except when there
|
||||||
} else {
|
// is no getter method in the bytecode. In that case we need to avoid inline class mangling for the
|
||||||
// Delay the computation of the signature until after inline classes lowering to make sure
|
// function reference used in the <signature-string> intrinsic.
|
||||||
// we mangle the function names correctly for things like extension methods on inline classes.
|
//
|
||||||
irCall(signatureStringIntrinsic).apply {
|
// Note that we cannot compute the signature at this point, since we still need to mangle the names of
|
||||||
putValueArgument(
|
// private properties in multifile-part classes.
|
||||||
0,
|
val needsDummySignature =
|
||||||
IrFunctionReferenceImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, expression.type, getter, 0, getter, null)
|
getter.owner.correspondingPropertySymbol?.owner?.needsAccessor(getter.owner) == false ||
|
||||||
|
getter.owner.origin == IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR && getter.owner.parentAsClass.isInline
|
||||||
|
|
||||||
|
putValueArgument(
|
||||||
|
0,
|
||||||
|
IrFunctionReferenceImpl(
|
||||||
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET, expression.type, getter, 0, getter,
|
||||||
|
if (needsDummySignature) InlineClassAbi.UNMANGLED_FUNCTION_REFERENCE else null
|
||||||
)
|
)
|
||||||
}
|
)
|
||||||
}
|
}
|
||||||
} ?: irString(expression.field!!.owner.signature)
|
} ?: irString(expression.field!!.owner.signature)
|
||||||
}
|
}
|
||||||
@@ -252,8 +261,8 @@ internal class PropertyReferenceLowering(val context: JvmBackendContext) : Class
|
|||||||
private fun createSpecializedKProperty(expression: IrCallableReference): IrExpression {
|
private fun createSpecializedKProperty(expression: IrCallableReference): IrExpression {
|
||||||
val referenceClass = createKPropertySubclass(expression)
|
val referenceClass = createKPropertySubclass(expression)
|
||||||
return context.createIrBuilder(
|
return context.createIrBuilder(
|
||||||
currentScope?.scope?.scopeOwnerSymbol ?: irClass.symbol, expression.startOffset, expression.endOffset
|
currentScope?.scope?.scopeOwnerSymbol ?: irClass.symbol, expression.startOffset, expression.endOffset
|
||||||
)
|
)
|
||||||
.irBlock {
|
.irBlock {
|
||||||
// TODO: Move this to the enclosing class, right now the parent field is wrong!
|
// TODO: Move this to the enclosing class, right now the parent field is wrong!
|
||||||
+referenceClass
|
+referenceClass
|
||||||
|
|||||||
+18
@@ -5,9 +5,11 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.jvm.lower.inlineclasses
|
package org.jetbrains.kotlin.backend.jvm.lower.inlineclasses
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.backend.jvm.codegen.fileParent
|
||||||
import org.jetbrains.kotlin.backend.jvm.ir.erasedUpperBound
|
import org.jetbrains.kotlin.backend.jvm.ir.erasedUpperBound
|
||||||
import org.jetbrains.kotlin.codegen.state.md5base64
|
import org.jetbrains.kotlin.codegen.state.md5base64
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrStatementOriginImpl
|
||||||
import org.jetbrains.kotlin.ir.types.*
|
import org.jetbrains.kotlin.ir.types.*
|
||||||
import org.jetbrains.kotlin.ir.util.*
|
import org.jetbrains.kotlin.ir.util.*
|
||||||
import org.jetbrains.kotlin.load.java.JvmAbi
|
import org.jetbrains.kotlin.load.java.JvmAbi
|
||||||
@@ -20,6 +22,14 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils
|
|||||||
fun IrType.unboxInlineClass() = InlineClassAbi.unboxType(this) ?: this
|
fun IrType.unboxInlineClass() = InlineClassAbi.unboxType(this) ?: this
|
||||||
|
|
||||||
object InlineClassAbi {
|
object InlineClassAbi {
|
||||||
|
/**
|
||||||
|
* An origin for IrFunctionReferences which prevents inline class mangling. This only exists because of
|
||||||
|
* inconsistencies between `RuntimeTypeMapper` and `KotlinTypeMapper`. The `RuntimeTypeMapper` does not
|
||||||
|
* perform inline class mangling and so in the absence of jvm signatures in the metadata we need to avoid
|
||||||
|
* inline class mangling as well in the function references used as arguments to the signature string intrinsic.
|
||||||
|
*/
|
||||||
|
object UNMANGLED_FUNCTION_REFERENCE : IrStatementOriginImpl("UNMANGLED_FUNCTION_REFERENCE")
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Unwraps inline class types to their underlying representation.
|
* Unwraps inline class types to their underlying representation.
|
||||||
* Returns null if the type cannot be unboxed.
|
* Returns null if the type cannot be unboxed.
|
||||||
@@ -65,6 +75,8 @@ object InlineClassAbi {
|
|||||||
val suffix = when {
|
val suffix = when {
|
||||||
irFunction.fullValueParameterList.any { it.type.requiresMangling } ->
|
irFunction.fullValueParameterList.any { it.type.requiresMangling } ->
|
||||||
hashSuffix(irFunction)
|
hashSuffix(irFunction)
|
||||||
|
irFunction.hasMangledReturnType ->
|
||||||
|
returnHashSuffix(irFunction)
|
||||||
(irFunction.parent as? IrClass)?.isInline == true -> "impl"
|
(irFunction.parent as? IrClass)?.isInline == true -> "impl"
|
||||||
else -> return irFunction.name
|
else -> return irFunction.name
|
||||||
}
|
}
|
||||||
@@ -86,6 +98,9 @@ object InlineClassAbi {
|
|||||||
private val IrFunction.propertyName: Name
|
private val IrFunction.propertyName: Name
|
||||||
get() = (this as IrSimpleFunction).correspondingPropertySymbol!!.owner.name
|
get() = (this as IrSimpleFunction).correspondingPropertySymbol!!.owner.name
|
||||||
|
|
||||||
|
fun returnHashSuffix(irFunction: IrFunction) =
|
||||||
|
md5base64(":${irFunction.returnType.eraseToString()}")
|
||||||
|
|
||||||
private fun hashSuffix(irFunction: IrFunction) =
|
private fun hashSuffix(irFunction: IrFunction) =
|
||||||
md5base64(irFunction.fullValueParameterList.joinToString { it.type.eraseToString() })
|
md5base64(irFunction.fullValueParameterList.joinToString { it.type.eraseToString() })
|
||||||
|
|
||||||
@@ -111,6 +126,9 @@ internal val IrFunction.hasMangledParameters: Boolean
|
|||||||
fullValueParameterList.any { it.type.requiresMangling } ||
|
fullValueParameterList.any { it.type.requiresMangling } ||
|
||||||
(this is IrConstructor && constructedClass.isInline)
|
(this is IrConstructor && constructedClass.isInline)
|
||||||
|
|
||||||
|
internal val IrFunction.hasMangledReturnType: Boolean
|
||||||
|
get() = returnType.erasedUpperBound.isInline && parentClassOrNull?.isFileClass != true
|
||||||
|
|
||||||
internal val IrClass.inlineClassFieldName: Name
|
internal val IrClass.inlineClassFieldName: Name
|
||||||
get() = primaryConstructor!!.valueParameters.single().name
|
get() = primaryConstructor!!.valueParameters.single().name
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.backend.common.ir.copyTypeParameters
|
|||||||
import org.jetbrains.kotlin.backend.common.ir.copyTypeParametersFrom
|
import org.jetbrains.kotlin.backend.common.ir.copyTypeParametersFrom
|
||||||
import org.jetbrains.kotlin.backend.common.ir.createDispatchReceiverParameter
|
import org.jetbrains.kotlin.backend.common.ir.createDispatchReceiverParameter
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
|
||||||
|
import org.jetbrains.kotlin.backend.jvm.ir.erasedUpperBound
|
||||||
import org.jetbrains.kotlin.backend.jvm.lower.inlineclasses.InlineClassAbi.mangledNameFor
|
import org.jetbrains.kotlin.backend.jvm.lower.inlineclasses.InlineClassAbi.mangledNameFor
|
||||||
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
||||||
import org.jetbrains.kotlin.ir.builders.declarations.addValueParameter
|
import org.jetbrains.kotlin.ir.builders.declarations.addValueParameter
|
||||||
@@ -53,8 +54,8 @@ class MemoizedInlineClassReplacements {
|
|||||||
it.parent.safeAs<IrClass>()?.isInline == true ->
|
it.parent.safeAs<IrClass>()?.isInline == true ->
|
||||||
createStaticReplacement(it)
|
createStaticReplacement(it)
|
||||||
|
|
||||||
// Otherwise, mangle functions with mangled parameters, while ignoring constructors
|
// Otherwise, mangle functions with mangled parameters, ignoring constructors
|
||||||
it is IrSimpleFunction && it.hasMangledParameters ->
|
it is IrSimpleFunction && (it.hasMangledParameters || it.hasMangledReturnType) ->
|
||||||
if (it.dispatchReceiverParameter != null) createMethodReplacement(it) else createStaticReplacement(it)
|
if (it.dispatchReceiverParameter != null) createMethodReplacement(it) else createStaticReplacement(it)
|
||||||
|
|
||||||
else ->
|
else ->
|
||||||
|
|||||||
Vendored
-2
@@ -1,8 +1,6 @@
|
|||||||
// !LANGUAGE: +InlineClasses
|
// !LANGUAGE: +InlineClasses
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
testForInUIntArrayWithUpcactToAny()
|
testForInUIntArrayWithUpcactToAny()
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
// IGNORE_BACKEND: JVM, JVM_IR
|
// IGNORE_BACKEND: JVM
|
||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// WITH_COROUTINES
|
// WITH_COROUTINES
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
// WITH_COROUTINES
|
// WITH_COROUTINES
|
||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND:
|
||||||
package test // NB This test depends on line numbers
|
package test // NB This test depends on line numbers
|
||||||
|
|
||||||
import helpers.*
|
import helpers.*
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
// WITH_COROUTINES
|
// WITH_COROUTINES
|
||||||
// WITH_REFLECT
|
// WITH_REFLECT
|
||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
|
|
||||||
import helpers.*
|
import helpers.*
|
||||||
import kotlin.coroutines.*
|
import kotlin.coroutines.*
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
// WITH_COROUTINES
|
// WITH_COROUTINES
|
||||||
// WITH_REFLECT
|
// WITH_REFLECT
|
||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
|
|
||||||
import helpers.*
|
import helpers.*
|
||||||
import kotlin.coroutines.*
|
import kotlin.coroutines.*
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
// !LANGUAGE: +InlineClasses
|
// !LANGUAGE: +InlineClasses
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
|
|
||||||
class C<T>(val x: T, vararg ys: UInt) {
|
class C<T>(val x: T, vararg ys: UInt) {
|
||||||
val y0 = ys[0]
|
val y0 = ys[0]
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
val ok = Result.success("OK")
|
val ok = Result.success("OK")
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-1
@@ -1,5 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|||||||
compiler/testData/codegen/box/ranges/stepped/unsigned/expression/downTo/maxValueToOneStepMaxValue.kt
Vendored
-1
@@ -1,5 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|||||||
-1
@@ -1,5 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
compiler/testData/codegen/box/ranges/stepped/unsigned/expression/downTo/reversed/reversedThenStep.kt
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
compiler/testData/codegen/box/ranges/stepped/unsigned/expression/downTo/reversed/stepThenReversed.kt
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
compiler/testData/codegen/box/ranges/stepped/unsigned/expression/rangeTo/illegalStepThenLegalStep.kt
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
compiler/testData/codegen/box/ranges/stepped/unsigned/expression/rangeTo/legalStepThenIllegalStep.kt
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-1
@@ -1,5 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-1
@@ -1,5 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-1
@@ -1,5 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
compiler/testData/codegen/box/ranges/stepped/unsigned/expression/until/emptyProgressionToMinValue.kt
Vendored
-1
@@ -1,5 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-1
@@ -1,5 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Vendored
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
-2
@@ -1,6 +1,4 @@
|
|||||||
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
// Auto-generated by GenerateSteppedRangesCodegenTestData. Do not edit!
|
||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// KJS_WITH_FULL_RUNTIME
|
// KJS_WITH_FULL_RUNTIME
|
||||||
// WITH_RUNTIME
|
// WITH_RUNTIME
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user