Andrey Tabakov
10/09/2023, 12:22 PMcompileProductionExecutableKotlinJs
gradle task, and then received this error (see comment for full stacktrace):
java.lang.ClassCastException: class org.jetbrains.kotlin.ir.declarations.impl.IrTypeParameterImpl cannot be cast to class org.jetbrains.kotlin.ir.declarations.IrClass (org.jetbrains.kotlin.ir.declarations.impl.IrTypeParameterImpl and org.jetbrains.kotlin.ir.declarations.IrClass are in unnamed module of loader 'app')
it worked perfectly with 1.9.10, any workaround?java.lang.ClassCastException: class org.jetbrains.kotlin.ir.declarations.impl.IrTypeParameterImpl cannot be cast to class org.jetbrains.kotlin.ir.declarations.IrClass (org.jetbrains.kotlin.ir.declarations.impl.IrTypeParameterImpl and org.jetbrains.kotlin.ir.declarations.IrClass are in unnamed module of loader 'app')
at org.jetbrains.kotlin.ir.backend.js.dce.JsUsefulDeclarationProcessor$bodyVisitor$1.visitCall(JsUsefulDeclarationProcessor.kt:74)
at org.jetbrains.kotlin.ir.backend.js.dce.JsUsefulDeclarationProcessor$bodyVisitor$1.visitCall(JsUsefulDeclarationProcessor.kt:32)
at org.jetbrains.kotlin.ir.expressions.IrCall.accept(IrCall.kt:26)
at org.jetbrains.kotlin.ir.expressions.IrReturn.acceptChildren(IrReturn.kt:29)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitElement(UsefulDeclarationProcessor.kt:43)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitElement(UsefulDeclarationProcessor.kt:36)
at org.jetbrains.kotlin.ir.visitors.IrElementVisitor$DefaultImpls.visitExpression(IrElementVisitor.kt:156)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitExpression(UsefulDeclarationProcessor.kt:36)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitExpression(UsefulDeclarationProcessor.kt:36)
at org.jetbrains.kotlin.ir.visitors.IrElementVisitor$DefaultImpls.visitReturn(IrElementVisitor.kt:282)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitReturn(UsefulDeclarationProcessor.kt:36)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitReturn(UsefulDeclarationProcessor.kt:36)
at org.jetbrains.kotlin.ir.expressions.IrReturn.accept(IrReturn.kt:26)
at org.jetbrains.kotlin.ir.expressions.IrBlockBody.acceptChildren(IrBlockBody.kt:28)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitElement(UsefulDeclarationProcessor.kt:43)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitElement(UsefulDeclarationProcessor.kt:36)
at org.jetbrains.kotlin.ir.visitors.IrElementVisitor$DefaultImpls.visitBody(IrElementVisitor.kt:159)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitBody(UsefulDeclarationProcessor.kt:36)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitBody(UsefulDeclarationProcessor.kt:36)
at org.jetbrains.kotlin.ir.visitors.IrElementVisitor$DefaultImpls.visitBlockBody(IrElementVisitor.kt:163)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitBlockBody(UsefulDeclarationProcessor.kt:36)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor$BodyVisitorBase.visitBlockBody(UsefulDeclarationProcessor.kt:36)
at org.jetbrains.kotlin.ir.expressions.IrBlockBody.accept(IrBlockBody.kt:25)
at org.jetbrains.kotlin.ir.backend.js.dce.UsefulDeclarationProcessor.collectDeclarations(UsefulDeclarationProcessor.kt:262)
at org.jetbrains.kotlin.ir.backend.js.dce.DceKt.eliminateDeadDeclarations(Dce.kt:35)
at org.jetbrains.kotlin.ir.backend.js.OptimizationsKt.optimizeProgramByIr(optimizations.kt:26)
at org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransformer.makeJsCodeGenerator(IrModuleToJsTransformer.kt:201)
at org.jetbrains.kotlin.cli.js.K2JsIrCompiler$Ir2JsTransformer.makeJsCodeGenerator(K2JsIrCompiler.kt:130)
at org.jetbrains.kotlin.cli.js.K2JsIrCompiler$Ir2JsTransformer.compileAndTransformIrNew(K2JsIrCompiler.kt:134)
at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.doExecute(K2JsIrCompiler.kt:391)
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:1523)
js(IR) {
browser {
dceTask{
this.dceOptions.devMode = true
}
}
}
anton.bannykh
10/09/2023, 12:27 PMIlya Goncharov [JB]
10/09/2023, 12:38 PMdceTask
is senseless with IR compiler. It worked only with legacy compiler.
For IR you can manage via development
or production
task,
production
task run with DCE and minification of member namesandylamax
10/19/2023, 6:43 AMbinaries.libraries()
?Ilya Goncharov [JB]
10/19/2023, 10:55 AMcompileProduction*KotlinJs