compose-multiplatform icon indicating copy to clipboard operation
compose-multiplatform copied to clipboard

Kotlin 2.0.0-Beta4 Support

Open mgroth0 opened this issue 1 year ago • 1 comments

Tested a project that previously compiled with Beta3 after upgrading to Beta4. The compilation fails with a NoSuchMethodError:

Stack Trace

e: java.lang.NoSuchMethodError: org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirDeclarationChecker: method 'void <init>()' not found
	at androidx.compose.compiler.plugins.kotlin.k2.ComposableFunctionChecker.<init>(ComposableFunctionChecker.kt:32)
	at androidx.compose.compiler.plugins.kotlin.k2.ComposableFunctionChecker.<clinit>(ComposableFunctionChecker.kt)
	at androidx.compose.compiler.plugins.kotlin.k2.ComposeFirCheckersExtension$declarationCheckers$1.<init>(ComposeFirExtensions.kt:74)
	at androidx.compose.compiler.plugins.kotlin.k2.ComposeFirCheckersExtension.<init>(ComposeFirExtensions.kt:72)
	at androidx.compose.compiler.plugins.kotlin.k2.ComposeFirExtensionRegistrar$configurePlugin$2.invoke(ComposeFirExtensions.kt:38)
	at androidx.compose.compiler.plugins.kotlin.k2.ComposeFirExtensionRegistrar$configurePlugin$2.invoke(ComposeFirExtensions.kt:38)
	at org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrar$ExtensionRegistrarContext.unaryPlus$lambda$2(FirExtensionRegistrar.kt:133)
	at org.jetbrains.kotlin.fir.extensions.FirExtensionService.registerExtensions(FirExtensionService.kt:43)
	at org.jetbrains.kotlin.fir.extensions.FirExtensionRegistrarKt.registerExtensions(FirExtensionRegistrar.kt:260)
	at org.jetbrains.kotlin.fir.session.FirSessionConfigurator.configure(FirSessionConfigurator.kt:53)
	at org.jetbrains.kotlin.fir.session.FirAbstractSessionFactory.createModuleBasedSession(FirAbstractSessionFactory.kt:120)
	at org.jetbrains.kotlin.fir.session.FirJvmSessionFactory.createModuleBasedSession(FirJvmSessionFactory.kt:99)
	at org.jetbrains.kotlin.cli.common.FirSessionConstructionUtilsKt.prepareJvmSessions(FirSessionConstructionUtils.kt:98)
	at org.jetbrains.kotlin.cli.jvm.compiler.pipeline.CompilerPipelineKt.compileModuleToAnalyzedFir(compilerPipeline.kt:295)
	at org.jetbrains.kotlin.cli.jvm.compiler.pipeline.CompilerPipelineKt.compileModulesUsingFrontendIrAndLightTree(compilerPipeline.kt:117)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:156)
	at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:50)
	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.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:453)
	at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:62)
	at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:502)
	at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:420)
	at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:301)
	at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:129)
	at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:687)
	at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:103)
	at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1674)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at java.base/java.lang.reflect.Method.invoke(Method.java:578)
	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:714)
	at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:598)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:844)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:721)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:720)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
	at java.base/java.lang.Thread.run(Thread.java:1623)

This error was thrown while using the 1.5.6-dev2-kt2.0.0-Beta3 compose compiler with kotlin version 2.0.0-Beta4

I recently reported an issue with Detekt that I was having with Beta3 in the Beta3 issue related to @Composable annotations. I see in the Beta4 changelist a few fixes related to @Composable annotations so I am eager to see if Beta4 allows me to use Detekt.

mgroth0 avatar Feb 13 '24 21:02 mgroth0

Android Compose Compiler version for Beta4 is out: 1.5.11-dev-k2.0.0-Beta4-21f5e479a96

mgroth0 avatar Feb 15 '24 16:02 mgroth0

can you try compiler plugin 1.5.9-kt-2.0.0-Beta4? issue should be resolved

shishkin-pavel avatar Feb 19 '24 14:02 shishkin-pavel

That version works 👍

ZacSweers avatar Feb 19 '24 16:02 ZacSweers

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.

okushnikov avatar Jul 14 '24 15:07 okushnikov