You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Aug 10, 2021. It is now read-only.
Casting to generic with multiple constraints inside an extension function crashes the compiler with exception e: kotlin.NotImplementedError: An operation is not implemented: <P : kotlin.CharSequence & kotlin.Comparable<kotlin.Any>> defined in function[TypeParameterDescriptorImpl@1bd851b4] : [CharSequence, Comparable<Any>]
This works on JVM/JS and pre 1.3.30 releases of Kotlin Native.
Code
fun <P> P.function()
where P : CharSequence,
P : Comparable<Any> {
@Suppress("UNCHECKED_CAST")
(this.lastIndex.toString() as P)
}
Exception
> Task :yaml:compileKotlinMacos
e: Compilation failed: An operation is not implemented: <P : kotlin.CharSequence & kotlin.Comparable<kotlin.Any>> defined in function[TypeParameterDescriptorImpl@1bd851b4] : [CharSequence, Comparable<Any>]
* Compiler version info: Konan: 1.2 / Kotlin: 1.3.30
* Output kind: LIBRARY
e: kotlin.NotImplementedError: An operation is not implemented: <P : kotlin.CharSequence & kotlin.Comparable<kotlin.Any>> defined in function[TypeParameterDescriptorImpl@1bd851b4] : [CharSequence, Comparable<Any>]
at org.jetbrains.kotlin.backend.konan.lower.TypeOperatorTransformer.erasure(TypeOperatorLowering.kt:65)
at org.jetbrains.kotlin.backend.konan.lower.TypeOperatorTransformer.lowerCast(TypeOperatorLowering.kt:80)
at org.jetbrains.kotlin.backend.konan.lower.TypeOperatorTransformer.visitTypeOperator(TypeOperatorLowering.kt:135)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitTypeOperator(IrElementTransformerVoid.kt:205)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitTypeOperator(IrElementTransformerVoid.kt:24)
at org.jetbrains.kotlin.ir.expressions.impl.IrTypeOperatorCallImpl.accept(IrTypeOperatorCallImpl.kt:54)
at org.jetbrains.kotlin.ir.expressions.IrExpression$DefaultImpls.transform(IrExpression.kt:27)
at org.jetbrains.kotlin.ir.expressions.impl.IrExpressionBase.transform(IrExpressionBase.kt:23)
at org.jetbrains.kotlin.ir.expressions.impl.IrTypeOperatorCallImpl.transformChildren(IrTypeOperatorCallImpl.kt:61)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoidKt.transformChildrenVoid(IrElementTransformerVoid.kt:278)
at org.jetbrains.kotlin.backend.konan.lower.TypeOperatorTransformer.visitTypeOperator(TypeOperatorLowering.kt:131)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitTypeOperator(IrElementTransformerVoid.kt:205)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitTypeOperator(IrElementTransformerVoid.kt:24)
at org.jetbrains.kotlin.ir.expressions.impl.IrTypeOperatorCallImpl.accept(IrTypeOperatorCallImpl.kt:54)
at org.jetbrains.kotlin.ir.expressions.IrExpression$DefaultImpls.transform(IrExpression.kt:27)
at org.jetbrains.kotlin.ir.expressions.impl.IrExpressionBase.transform(IrExpressionBase.kt:23)
at org.jetbrains.kotlin.ir.expressions.impl.IrExpressionBase.transform(IrExpressionBase.kt:23)
at org.jetbrains.kotlin.ir.expressions.impl.IrBlockBodyImpl.transformChildren(IrBlockBodyImpl.kt:49)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoidKt.transformChildrenVoid(IrElementTransformerVoid.kt:278)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.transformChildrenVoid(IrElementTransformerVoid.kt:273)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.transformChildren(IrElementTransformerVoid.kt:25)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitBody(IrElementTransformerVoid.kt:90)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitBlockBody(IrElementTransformerVoid.kt:96)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitBlockBody(IrElementTransformerVoid.kt:97)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitBlockBody(IrElementTransformerVoid.kt:24)
at org.jetbrains.kotlin.ir.expressions.impl.IrBlockBodyImpl.accept(IrBlockBodyImpl.kt:40)
at org.jetbrains.kotlin.ir.expressions.IrBody$DefaultImpls.transform(IrBody.kt:24)
at org.jetbrains.kotlin.ir.expressions.IrBlockBody$DefaultImpls.transform(IrBody.kt)
at org.jetbrains.kotlin.ir.expressions.impl.IrBlockBodyImpl.transform(IrBlockBodyImpl.kt:26)
at org.jetbrains.kotlin.ir.declarations.impl.IrFunctionBase.transformChildren(IrFunctionBase.kt:77)
at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoidKt.transformChildrenVoid(IrElementTransformerVoid.kt:278)
at org.jetbrains.kotlin.backend.konan.lower.TypeOperatorLowering.lower(TypeOperatorLowering.kt:41)
at org.jetbrains.kotlin.backend.common.LowerKt$runOnFilePostfix$3.visitFunction(Lower.kt:101)
at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitSimpleFunction(IrElementVisitorVoid.kt:52)
at org.jetbrains.kotlin.backend.common.LowerKt$runOnFilePostfix$3.visitSimpleFunction(Lower.kt:94)
at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitSimpleFunction(IrElementVisitorVoid.kt:53)
at org.jetbrains.kotlin.backend.common.LowerKt$runOnFilePostfix$3.visitSimpleFunction(Lower.kt:94)
at org.jetbrains.kotlin.backend.common.LowerKt$runOnFilePostfix$3.visitSimpleFunction(Lower.kt:94)
at org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl.accept(IrFunctionImpl.kt:92)
at org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl.acceptChildren(IrFileImpl.kt:82)
at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoidKt.acceptChildrenVoid(IrElementVisitorVoid.kt:262)
at org.jetbrains.kotlin.backend.common.LowerKt$runOnFilePostfix$3.visitElement(Lower.kt:96)
at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitPackageFragment(IrElementVisitorVoid.kt:30)
at org.jetbrains.kotlin.backend.common.LowerKt$runOnFilePostfix$3.visitPackageFragment(Lower.kt:94)
at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitFile(IrElementVisitorVoid.kt:37)
at org.jetbrains.kotlin.backend.common.LowerKt$runOnFilePostfix$3.visitFile(Lower.kt:94)
at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitFile(IrElementVisitorVoid.kt:38)
at org.jetbrains.kotlin.backend.common.LowerKt$runOnFilePostfix$3.visitFile(Lower.kt:94)
at org.jetbrains.kotlin.backend.common.LowerKt$runOnFilePostfix$3.visitFile(Lower.kt:94)
at org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl.accept(IrFileImpl.kt:79)
at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoidKt.acceptVoid(IrElementVisitorVoid.kt:258)
at org.jetbrains.kotlin.backend.common.LowerKt.runOnFilePostfix(Lower.kt:94)
at org.jetbrains.kotlin.backend.common.FunctionLoweringPass$DefaultImpls.lower(Lower.kt:45)
at org.jetbrains.kotlin.backend.konan.lower.TypeOperatorLowering.lower(TypeOperatorLowering.kt:38)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$makeIrFilePhase$2.invoke(PhaseBuilders.kt:102)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$makeIrFilePhase$2.invoke(PhaseBuilders.kt:100)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper$runBody$1.invoke(CompilerPhase.kt:91)
at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.downlevel(CompilerPhase.kt:18)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.runBody(CompilerPhase.kt:90)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.invoke(CompilerPhase.kt:73)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:15)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$performByIrFile$2.invoke(PhaseBuilders.kt:80)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$performByIrFile$2.invoke(PhaseBuilders.kt:72)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper$runBody$1.invoke(CompilerPhase.kt:91)
at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.downlevel(CompilerPhase.kt:18)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.runBody(CompilerPhase.kt:90)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.invoke(CompilerPhase.kt:73)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:15)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper$runBody$1.invoke(CompilerPhase.kt:91)
at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.downlevel(CompilerPhase.kt:18)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.runBody(CompilerPhase.kt:90)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.invoke(CompilerPhase.kt:73)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:15)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper$runBody$1.invoke(CompilerPhase.kt:91)
at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.downlevel(CompilerPhase.kt:18)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.runBody(CompilerPhase.kt:90)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.invoke(CompilerPhase.kt:73)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:15)
at org.jetbrains.kotlin.backend.common.phaser.PhaseBuildersKt$then$1.invoke(PhaseBuilders.kt:14)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper$runBody$1.invoke(CompilerPhase.kt:91)
at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.downlevel(CompilerPhase.kt:18)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.runBody(CompilerPhase.kt:90)
at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedPhaseWrapper.invoke(CompilerPhase.kt:73)
at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.invokeToplevel(CompilerPhase.kt:33)
at org.jetbrains.kotlin.backend.konan.KonanDriverKt.runTopLevelPhases(KonanDriver.kt:30)
at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:78)
at org.jetbrains.kotlin.cli.bc.K2Native.doExecute(K2Native.kt:35)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:84)
at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:42)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:103)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:81)
at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:49)
at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMainNoExit(CLITool.kt:214)
at org.jetbrains.kotlin.cli.common.CLITool$Companion.doMain(CLITool.kt:206)
at org.jetbrains.kotlin.cli.bc.K2Native$Companion$main$1.invoke(K2Native.kt:217)
at org.jetbrains.kotlin.cli.bc.K2Native$Companion$main$1.invoke(K2Native.kt:208)
at org.jetbrains.kotlin.konan.util.UtilKt.profileIf(Util.kt:39)
at org.jetbrains.kotlin.konan.util.UtilKt.profile(Util.kt:33)
at org.jetbrains.kotlin.cli.bc.K2Native$Companion.main(K2Native.kt:210)
at org.jetbrains.kotlin.cli.bc.K2NativeKt.main(K2Native.kt:296)
at org.jetbrains.kotlin.cli.utilities.MainKt.main(main.kt:16)
The text was updated successfully, but these errors were encountered:
Casting to generic with multiple constraints inside an extension function crashes the compiler with exception
e: kotlin.NotImplementedError: An operation is not implemented: <P : kotlin.CharSequence & kotlin.Comparable<kotlin.Any>> defined in function[TypeParameterDescriptorImpl@1bd851b4] : [CharSequence, Comparable<Any>]
This works on JVM/JS and pre 1.3.30 releases of Kotlin Native.
Code
Exception
The text was updated successfully, but these errors were encountered: