https://kotlinlang.org logo
#webassembly
Title
# webassembly
r

Robert Jaros

11/17/2023, 9:50 AM
After upgrading Kotlin from 1.9.20 to 2.0.0-Beta1 my wasmJs target doesn't compile with a
CompilationException
.
Copy code
e: org.jetbrains.kotlin.backend.common.CompilationException: Back-end: Please report this problem <https://kotl.in/issue>
/home/rjaros/git/kilua/kilua/src/commonMain/kotlin/dev/kilua/form/Input.kt:38:1
Problem with `@StabilityInferred(parameters = 0)
abstract class Input<T : Any> : Tag<HTMLInputElement>, GenericFormControl<T>, WithStateFlow<T?> {
  constructor(value: T? = null, type: InputType = InputType.Text, name: String? = null, maxlength: Int? = null, placeholder: String? = null, disabled: Boolean? = null, required: Boolean? = null, id: String? = null, className: String? = null, renderConfig: RenderConfig = DefaultRenderConfig(), withStateFlowDelegate: WithStateFlowDelegate<T?> = WithStateFlowDelegateImpl<T?>()) /* primary */ {
...
There is a lot of code from my
Input.kt
class after that.
And in the end:
Copy code
Details: Internal error in body lowering: java.util.NoSuchElementException: Sequence contains no element matching the predicate.
        at org.jetbrains.kotlin.backend.common.lower.SingleAbstractMethodLowering.createObjectProxy(SingleAbstractMethodLowering.kt:391)
        at org.jetbrains.kotlin.backend.common.lower.SingleAbstractMethodLowering.visitTypeOperator(SingleAbstractMethodLowering.kt:123)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitTypeOperator(IrElementTransformerVoid.kt:261)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitTypeOperator(IrElementTransformerVoid.kt:24)
        at org.jetbrains.kotlin.ir.expressions.IrTypeOperatorCall.accept(IrTypeOperatorCall.kt:28)
        at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:31)
        at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:22)
        at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
        at org.jetbrains.kotlin.ir.expressions.IrVararg.transformChildren(IrVararg.kt:34)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitExpression(IrElementTransformerVoid.kt:131)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitVararg(IrElementTransformerVoid.kt:156)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitVararg(IrElementTransformerVoid.kt:157)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitVararg(IrElementTransformerVoid.kt:24)
        at org.jetbrains.kotlin.ir.expressions.IrVararg.accept(IrVararg.kt:27)
        at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:31)
        at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:22)
        at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:45)
        at org.jetbrains.kotlin.ir.expressions.IrMemberAccessExpression.transformChildren(IrMemberAccessExpression.kt:50)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitExpression(IrElementTransformerVoid.kt:131)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitDeclarationReference(IrElementTransformerVoid.kt:178)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitMemberAccess(IrElementTransformerVoid.kt:208)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitFunctionAccess(IrElementTransformerVoid.kt:211)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitCall(IrElementTransformerVoid.kt:214)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitCall(IrElementTransformerVoid.kt:215)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.visitCall(IrElementTransformerVoid.kt:24)
        at org.jetbrains.kotlin.ir.expressions.IrCall.accept(IrCall.kt:26)
        at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:31)
        at org.jetbrains.kotlin.ir.expressions.IrExpression.transform(IrExpression.kt:22)
        at org.jetbrains.kotlin.ir.util.TransformKt.transformInPlace(transform.kt:35)
        at org.jetbrains.kotlin.ir.expressions.IrBlockBody.transformChildren(IrBlockBody.kt:32)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoidKt.transformChildrenVoid(IrElementTransformerVoid.kt:346)
        at org.jetbrains.kotlin.ir.visitors.IrElementTransformerVoid.transformChildrenVoid(IrElementTransformerVoid.kt:341)
        at org.jetbrains.kotlin.ir.backend.js.lower.JsSingleAbstractMethodLowering.lower(JsSingleAbstractMethodLowering.kt:44)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor$visitBody$1.invoke(Lower.kt:193)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor$visitBody$1.invoke(Lower.kt:192)
        at org.jetbrains.kotlin.ir.declarations.StageController.restrictTo(PersistentApi.kt:11)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitBody(Lower.kt:192)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitBody(Lower.kt:171)
        at org.jetbrains.kotlin.ir.visitors.IrElementVisitor$DefaultImpls.visitBlockBody(IrElementVisitor.kt:92)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitBlockBody(Lower.kt:171)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitBlockBody(Lower.kt:171)
        at org.jetbrains.kotlin.ir.expressions.IrBlockBody.accept(IrBlockBody.kt:25)
        at org.jetbrains.kotlin.ir.declarations.IrFunction.acceptChildren(IrFunction.kt:54)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitDeclaration(Lower.kt:180)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitDeclaration(Lower.kt:171)
        at org.jetbrains.kotlin.ir.visitors.IrElementVisitor$DefaultImpls.visitFunction(IrElementVisitor.kt:38)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitFunction(Lower.kt:171)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitFunction(Lower.kt:171)
        at org.jetbrains.kotlin.ir.visitors.IrElementVisitor$DefaultImpls.visitSimpleFunction(IrElementVisitor.kt:65)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitSimpleFunction(Lower.kt:171)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitSimpleFunction(Lower.kt:171)
        at org.jetbrains.kotlin.ir.declarations.IrSimpleFunction.accept(IrSimpleFunction.kt:37)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitClass(Lower.kt:186)
        at org.jetbrains.kotlin.backend.common.BodyLoweringVisitor.visitClass(Lower.kt:171)
        at org.jetbrains.kotlin.ir.declarations.IrClass.accept(IrClass.kt:84)
        at org.jetbrains.kotlin.backend.common.LowerKt.runOnFilePostfix(Lower.kt:150)
        at org.jetbrains.kotlin.backend.common.LowerKt.runOnFilePostfix$default(Lower.kt:143)
        at org.jetbrains.kotlin.backend.common.BodyLoweringPass.lower(Lower.kt:63)
        at org.jetbrains.kotlin.ir.backend.js.lower.JsSingleAbstractMethodLowering.lower(JsSingleAbstractMethodLowering.kt:35)
        at org.jetbrains.kotlin.backend.common.LowerKt.lower(Lower.kt:76)
        at org.jetbrains.kotlin.backend.wasm.WasmLoweringPhasesKt$makeWasmModulePhase$1.invoke(WasmLoweringPhases.kt:38)
        at org.jetbrains.kotlin.backend.wasm.WasmLoweringPhasesKt$makeWasmModulePhase$1.invoke(WasmLoweringPhases.kt:37)
        at org.jetbrains.kotlin.backend.wasm.WasmLoweringPhasesKt$makeCustomWasmModulePhase$1.invoke(WasmLoweringPhases.kt:62)
        at org.jetbrains.kotlin.backend.wasm.WasmLoweringPhasesKt$makeCustomWasmModulePhase$1.invoke(WasmLoweringPhases.kt:54)
        at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.phaseBody(CompilerPhase.kt:147)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedCompilerPhase.invoke(CompilerPhase.kt:94)
        at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:30)
        at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:17)
        at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.phaseBody(CompilerPhase.kt:147)
        at org.jetbrains.kotlin.backend.common.phaser.AbstractNamedCompilerPhase.invoke(CompilerPhase.kt:94)
        at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.invokeToplevel(CompilerPhase.kt:43)
        at org.jetbrains.kotlin.backend.wasm.CompilerKt.compileToLoweredIr(compiler.kt:86)
        at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.doExecute(K2JsIrCompiler.kt:352)
        at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:181)
        at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:72)
        at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:104)
        at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:48)
        at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
        at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1508)
        at jdk.internal.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
        at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
        at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
        at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
        at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.util.NoSuchElementException: Sequence contains no element matching the predicate.
        ... 95 more
The JS target gives me lot's of new warnings but compiles successfully.
Another error:
Copy code
e: org.jetbrains.kotlin.backend.common.CompilationException: Back-end: Please report this problem <https://kotl.in/issue>
/home/rjaros/git/kilua/kilua/src/commonMain/kotlin/dev/kilua/form/Form.kt:110:1
Problem with `@Suppress(names = ["TooManyFunctions"])
@StabilityInferred(parameters = 0)
open class Form<K : Any> : Tag<HTMLFormElement>, WithStateFlow<K> {
  constructor(method: FormMethod? = null, action: String? = null, enctype: FormEnctype? = null, serializer: KSerializer<K>? = null, customSerializers: Map<KClass<*>, KSerializer<*>>? = null, className: String? = null, renderConfig: RenderConfig = DefaultRenderConfig()) /* primary */ {
    super/*Tag*/<HTMLFormElement>(tagName = "form", className = className, renderConfig = renderConfig)
    /* <init>() */

  }
b

bashor

11/17/2023, 5:33 PM
@Robert Jaros please file an issue.
r

Robert Jaros

11/17/2023, 5:53 PM
4 Views