ForteScarlet / kotlin-suspend-transform-compiler-plugin

A Kotlin compiler plugin for transforming suspend functions to platform-compatible non-suspend functions, such as the JVM Blocking API and CompletableFuture
MIT License
30 stars 3 forks source link

Build error since updating to version 0.9.0 and Kotlin 2.0.0 #56

Closed waltkb closed 3 days ago

waltkb commented 2 weeks ago

Hi,

since updating to Kotlin 2.0.0 and the suspend-transform plugin, a issue came up. It worked with id("love.forte.plugin.suspend-transform") version "0.6.0" and Kotlin 1.9.21.

But when upgrading to Kotlin 2.0.0 and id("love.forte.plugin.suspend-transform") version "0.9.0", I get an error at build for this file: https://github.com/walt-id/waltid-identity/blob/main/waltid-libraries/waltid-crypto/src/commonMain/kotlin/id/walt/crypto/keys/oci/OCIKeyRestApi.kt

The error is:

> Task :waltid-libraries:waltid-crypto:metadataProcessResources
> Task :waltid-libraries:waltid-crypto:metadataMainClasses
> Task :waltid-libraries:waltid-crypto:compileKotlinJs FAILED

e: org.jetbrains.kotlin.util.FileAnalysisException: While analysing waltid-identity/waltid-libraries/waltid-crypto/src/commonMain/kotlin/id/walt/crypto/keys/oci/OCIKeyRestApi.kt:270:5: java.lang.IllegalArgumentException: Failed requirement.
    at org.jetbrains.kotlin.util.AnalysisExceptionsKt.wrapIntoFileAnalysisExceptionIfNeeded(AnalysisExceptions.kt:56)
    at org.jetbrains.kotlin.fir.FirCliExceptionHandler.handleExceptionOnFileAnalysis(Utils.kt:180)
    at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:46)
    at org.jetbrains.kotlin.fir.pipeline.ConvertToIrKt.runPlatformCheckers(convertToIr.kt:62)
    at org.jetbrains.kotlin.cli.js.klib.JsCompilerPipelineKt.compileModulesToAnalyzedFirWithLightTree(jsCompilerPipeline.kt:194)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.processSourceModuleWithK2(K2JsIrCompiler.kt:584)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.produceSourceModule(K2JsIrCompiler.kt:485)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.doExecute(K2JsIrCompiler.kt:325)
    at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:109)
    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.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:211)
    at org.jetbrains.kotlin.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:86)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:506)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:423)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:301)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:129)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile$default(IncrementalCompilerRunner.kt:113)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execJsIncrementalCompiler(CompileServiceImpl.kt:609)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execJsIncrementalCompiler(CompileServiceImpl.kt:92)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1759)
    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:712)
    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:399)
    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:1589)
Caused by: java.lang.IllegalArgumentException: Failed requirement.
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:47)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirArgumentList.accept(FirArgumentList.kt:25)
    at org.jetbrains.kotlin.fir.expressions.impl.FirGetClassCallImpl.acceptChildren(FirGetClassCallImpl.kt:35)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitGetClassCall(FirVisitor.kt:354)
    at org.jetbrains.kotlin.fir.expressions.FirGetClassCall.accept(FirGetClassCall.kt:29)
    at org.jetbrains.kotlin.fir.expressions.impl.FirVarargArgumentsExpressionImpl.acceptChildren(FirVarargArgumentsExpressionImpl.kt:37)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitAnnotationContainer(FirVisitor.kt:27)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitStatement(FirDefaultVisitor.kt:33)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitExpression(FirDefaultVisitor.kt:36)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitVarargArgumentsExpression(FirDefaultVisitor.kt:180)
    at org.jetbrains.kotlin.fir.expressions.FirVarargArgumentsExpression.accept(FirVarargArgumentsExpression.kt:42)
    at org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList.acceptChildren(FirResolvedArgumentList.kt:35)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:48)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirArgumentList.accept(FirArgumentList.kt:25)
    at org.jetbrains.kotlin.fir.expressions.impl.FirAnnotationCallImpl.acceptChildren(FirAnnotationCallImpl.kt:48)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitAnnotationCall(GeneratedDeclarationValidation.kt:39)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitAnnotationCall(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirAnnotationCall.accept(FirAnnotationCall.kt:40)
    at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.acceptChildren(FirSimpleFunctionImpl.kt:69)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitSimpleFunction(FirVisitor.kt:138)
    at org.jetbrains.kotlin.fir.declarations.FirSimpleFunction.accept(FirSimpleFunction.kt:51)
    at org.jetbrains.kotlin.fir.declarations.GeneratedDeclarationValidationKt.validate(GeneratedDeclarationValidation.kt:21)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage.generateMemberFunctions(FirGeneratedScopes.kt:199)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage.access$generateMemberFunctions(FirGeneratedScopes.kt:175)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:71)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:69)
    at org.jetbrains.kotlin.fir.caches.FirThreadUnsafeCache.getValue(FirThreadUnsafeCachesFactory.kt:40)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedClassDeclaredMemberScope.processFunctionsByName(FirGeneratedScopes.kt:281)
    at org.jetbrains.kotlin.fir.scopes.FirCompositeScope.processFunctionsByName(FirCompositeScope.kt:55)
    at org.jetbrains.kotlin.fir.scopes.FirNameAwareCompositeScope.processFunctionsByName(FirCompositeScope.kt:82)
    at org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider$PlatformDependentFilteringScope.processFunctionsByName(FirKotlinScopeProvider.kt:144)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectDeclaredFunctions(AbstractFirUseSiteMemberScope.kt:78)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectFunctions(AbstractFirUseSiteMemberScope.kt:72)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.processFunctionsByName(AbstractFirUseSiteMemberScope.kt:63)
    at org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScopeKt.processAllFunctions(FirContainingNamesAwareScope.kt:19)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:44)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker$Regular.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:32)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker$Regular.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:29)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.check(DeclarationCheckersDiagnosticComponent.kt:133)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.visitRegularClass(DeclarationCheckersDiagnosticComponent.kt:57)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.visitRegularClass(DeclarationCheckersDiagnosticComponent.kt:19)
    at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
    at org.jetbrains.kotlin.fir.analysis.collectors.CheckerRunningDiagnosticCollectorVisitor.checkElement(CheckerRunningDiagnosticCollectorVisitor.kt:24)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.access$checkElement(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitWithDeclarationAndReceiver(AbstractDiagnosticCollectorVisitor.kt:1349)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitClassAndChildren(AbstractDiagnosticCollectorVisitor.kt:86)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:91)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
    at org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl.acceptChildren(FirRegularClassImpl.kt:62)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:37)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitWithDeclarationAndReceiver(AbstractDiagnosticCollectorVisitor.kt:307)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitClassAndChildren(AbstractDiagnosticCollectorVisitor.kt:86)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:91)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
    at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.acceptChildren(FirFileImpl.kt:56)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:37)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:1124)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.declarations.FirFile.accept(FirFile.kt:42)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector.collectDiagnostics(AbstractDiagnosticCollector.kt:36)
    at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:34)
    ... 35 more

> Task :waltid-libraries:waltid-crypto:compileKotlinJvm FAILED

e: org.jetbrains.kotlin.util.FileAnalysisException: While analysing waltid-identity/waltid-libraries/waltid-crypto/src/commonMain/kotlin/id/walt/crypto/keys/oci/OCIKeyRestApi.kt:270:5: java.lang.IllegalArgumentException: Failed requirement.
    at org.jetbrains.kotlin.util.AnalysisExceptionsKt.wrapIntoFileAnalysisExceptionIfNeeded(AnalysisExceptions.kt:56)
    at org.jetbrains.kotlin.fir.FirCliExceptionHandler.handleExceptionOnFileAnalysis(Utils.kt:180)
    at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:46)
    at org.jetbrains.kotlin.fir.pipeline.ConvertToIrKt.runPlatformCheckers(convertToIr.kt:62)
    at org.jetbrains.kotlin.cli.js.klib.JsCompilerPipelineKt.compileModulesToAnalyzedFirWithLightTree(jsCompilerPipeline.kt:194)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.processSourceModuleWithK2(K2JsIrCompiler.kt:584)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.produceSourceModule(K2JsIrCompiler.kt:485)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.doExecute(K2JsIrCompiler.kt:325)
    at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:109)
    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.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:211)
    at org.jetbrains.kotlin.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:86)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:506)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:423)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:301)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:129)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile$default(IncrementalCompilerRunner.kt:113)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execJsIncrementalCompiler(CompileServiceImpl.kt:609)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execJsIncrementalCompiler(CompileServiceImpl.kt:92)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1759)
    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:712)
    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:399)
    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:1589)
Caused by: java.lang.IllegalArgumentException: Failed requirement.
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:47)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirArgumentList.accept(FirArgumentList.kt:25)
    at org.jetbrains.kotlin.fir.expressions.impl.FirGetClassCallImpl.acceptChildren(FirGetClassCallImpl.kt:35)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitGetClassCall(FirVisitor.kt:354)
    at org.jetbrains.kotlin.fir.expressions.FirGetClassCall.accept(FirGetClassCall.kt:29)
    at org.jetbrains.kotlin.fir.expressions.impl.FirVarargArgumentsExpressionImpl.acceptChildren(FirVarargArgumentsExpressionImpl.kt:37)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitAnnotationContainer(FirVisitor.kt:27)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitStatement(FirDefaultVisitor.kt:33)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitExpression(FirDefaultVisitor.kt:36)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitVarargArgumentsExpression(FirDefaultVisitor.kt:180)
    at org.jetbrains.kotlin.fir.expressions.FirVarargArgumentsExpression.accept(FirVarargArgumentsExpression.kt:42)
    at org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList.acceptChildren(FirResolvedArgumentList.kt:35)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:48)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirArgumentList.accept(FirArgumentList.kt:25)
    at org.jetbrains.kotlin.fir.expressions.impl.FirAnnotationCallImpl.acceptChildren(FirAnnotationCallImpl.kt:48)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitAnnotationCall(GeneratedDeclarationValidation.kt:39)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitAnnotationCall(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirAnnotationCall.accept(FirAnnotationCall.kt:40)
    at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.acceptChildren(FirSimpleFunctionImpl.kt:69)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitSimpleFunction(FirVisitor.kt:138)
    at org.jetbrains.kotlin.fir.declarations.FirSimpleFunction.accept(FirSimpleFunction.kt:51)
    at org.jetbrains.kotlin.fir.declarations.GeneratedDeclarationValidationKt.validate(GeneratedDeclarationValidation.kt:21)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage.generateMemberFunctions(FirGeneratedScopes.kt:199)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage.access$generateMemberFunctions(FirGeneratedScopes.kt:175)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:71)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:69)
    at org.jetbrains.kotlin.fir.caches.FirThreadUnsafeCache.getValue(FirThreadUnsafeCachesFactory.kt:40)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedClassDeclaredMemberScope.processFunctionsByName(FirGeneratedScopes.kt:281)
    at org.jetbrains.kotlin.fir.scopes.FirCompositeScope.processFunctionsByName(FirCompositeScope.kt:55)
    at org.jetbrains.kotlin.fir.scopes.FirNameAwareCompositeScope.processFunctionsByName(FirCompositeScope.kt:82)
    at org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider$PlatformDependentFilteringScope.processFunctionsByName(FirKotlinScopeProvider.kt:144)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectDeclaredFunctions(AbstractFirUseSiteMemberScope.kt:78)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectFunctions(AbstractFirUseSiteMemberScope.kt:72)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.processFunctionsByName(AbstractFirUseSiteMemberScope.kt:63)
    at org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScopeKt.processAllFunctions(FirContainingNamesAwareScope.kt:19)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:44)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker$Regular.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:32)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker$Regular.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:29)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.check(DeclarationCheckersDiagnosticComponent.kt:133)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.visitRegularClass(DeclarationCheckersDiagnosticComponent.kt:57)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.visitRegularClass(DeclarationCheckersDiagnosticComponent.kt:19)
    at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
    at org.jetbrains.kotlin.fir.analysis.collectors.CheckerRunningDiagnosticCollectorVisitor.checkElement(CheckerRunningDiagnosticCollectorVisitor.kt:24)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.access$checkElement(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitWithDeclarationAndReceiver(AbstractDiagnosticCollectorVisitor.kt:1349)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitClassAndChildren(AbstractDiagnosticCollectorVisitor.kt:86)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:91)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
    at org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl.acceptChildren(FirRegularClassImpl.kt:62)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:37)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitWithDeclarationAndReceiver(AbstractDiagnosticCollectorVisitor.kt:307)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitClassAndChildren(AbstractDiagnosticCollectorVisitor.kt:86)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:91)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
    at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.acceptChildren(FirFileImpl.kt:56)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:37)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:1124)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.declarations.FirFile.accept(FirFile.kt:42)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector.collectDiagnostics(AbstractDiagnosticCollector.kt:36)
    at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:34)
    ... 35 more

So it seems to happen for both compileKotlinJs and compileKotlinJvm tasks. The line number and character seems to indicate the error happens at companion object { of the file?

Do you have any idea what this could be? Thanks for your help.

waltkb commented 2 weeks ago

I just tested the snapshot, but the same error happens with id("love.forte.plugin.suspend-transform") version "2.0.0-0.9.0-dev1"

ForteScarlet commented 2 weeks ago

Hello. Looking at the stack of exceptions alone, there doesn't seem to be anything for this plugin, and I'm not quite sure what's causing it. Maybe try removing the relevant annotations within the companion object, or in the class as a whole, and see what changes?

I also seem to have found some issues with IllegalArgumentException: Failed requirement on kotlin's YouTrack, so I wonder if they could be related to this issue? Their problems also seem to occur after upgrading Kotlin 2.0: https://youtrack.jetbrains.com/issue/KT-69211/K2-java.lang.IllegalArgumentException-Failed-requirement

waltkb commented 2 weeks ago

Well, I unfortunately also don't know any more information than that it happens with this single file, and only when I changed id("love.forte.plugin.suspend-transform") version "0.6.0" to id("love.forte.plugin.suspend-transform") version "0.9.0".

In the YouTrack issue you linked someone says upgrading to Kotlin-2.0.20-Beta1 resolved their java.lang.IllegalArgumentException: Failed requirement exception, so I tried that, and also upgraded to id("love.forte.plugin.suspend-transform") version "2.0.20-Beta1-0.9.1", but unfortunately this didn't change anything, it's still the same exception:

org.jetbrains.kotlin.util.FileAnalysisException: While analysing waltid-identity/waltid-libraries/waltid-crypto/src/commonMain/kotlin/id/walt/crypto/keys/oci/OCIKeyRestApi.kt:270:5: java.lang.IllegalArgumentException: Failed requirement.

When I downgrade the plugin back to id("love.forte.plugin.suspend-transform") version "0.6.0" for the single module it compiles fine without exception, but of course does not produce the java blocking and java async functions, as the Kotlin version mismatches.

waltkb commented 2 weeks ago

I now tried to remove all love.forte.plugin.suspendtrans.annotation.JsPromise, love.forte.plugin.suspendtrans.annotation.JvmAsync, love.forte.plugin.suspendtrans.annotation.JvmBlocking annotations from the file, and then it compiles without the exception.

waltkb commented 2 weeks ago

I am now trying to add as many of the annotations back without the compilation failing, and in this file https://github.com/walt-id/waltid-identity/blob/main/waltid-libraries/waltid-crypto/src/jsMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.js.kt it fails in 3 places in which it didn't before:

e: waltid-identity/waltid-libraries/waltid-crypto/src/jsMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.js.kt:30:14
'@OptIn(...) @JsExport() @Serializable() @SerialName(...) actual class JWKKey : Key' has no corresponding members for expected class members:

    @JvmBlocking() @JvmAsync() @JsPromise() @Api4Js() fun getPublicKeyAsync(): Promise<out Key>

    The following declaration is incompatible because return type is different:
        @JsPromise() @Api4Js() actual fun getPublicKeyAsync(): Promise<out JWKKey>
e: waltid-identity/waltid-libraries/waltid-crypto/src/jsMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.js.kt:30:14
'@OptIn(...) @JsExport() @Serializable() @SerialName(...) actual class JWKKey : Key' has no corresponding members for expected class members:

    @JvmBlocking() @JvmAsync() @JsPromise() @Api4Js() fun getMetaAsync(): Promise<out KeyMeta>

    The following declaration is incompatible because return type is different:
        @JsPromise() @Api4Js() actual fun getMetaAsync(): Promise<out JwkKeyMeta>
e: waltid-identity/waltid-libraries/waltid-crypto/src/jsMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.js.kt:30:14
'@OptIn(...) @JsExport() @Serializable() @SerialName(...) actual class JWKKey : Key' has no corresponding members for expected class members:

    @JvmBlocking() @JvmAsync() @JsPromise() @Api4Js() fun signRawAsync(plaintext: ByteArray): Promise<out Any>

    The following declaration is incompatible because return type is different:
        @JsPromise() @Api4Js() actual fun signRawAsync(plaintext: ByteArray): Promise<out ByteArray>

All the return types that are not accepted are more specific instead of more general, so it should work fine? In this case it's not taking the return types from the expect class though (it has the same return types, not any more general ones), but the superclass that the expect class implements.

waltkb commented 2 weeks ago

I was able to add back all @JvmBlocking/@JvmAsync/@JsPromise annotations to the other file that had the FileAnalysisException: While analysing ... IllegalArgumentException: Failed requirement exception, even in the companion object, except for one exception that I can pinpoint to this function: https://github.com/walt-id/waltid-identity/blob/update-suspendtransform/waltid-libraries/waltid-crypto/src/commonMain/kotlin/id/walt/crypto/keys/oci/OCIKeyRestApi.kt#L286 suspend fun generateKey(type: KeyType, config: OCIKeyMetadata): OCIKeyRestApi.

When any of @JvmBlocking or @JvmAsync or @JsPromise is applied to this function, the above mentioned FileAnalysisException: While analysing ... IllegalArgumentException: Failed requirement exception occurs during compilation.

waltkb commented 2 weeks ago

It also seems not do have to do anything with the actual function content, just the function definition, because the exception even happens with:

@OptIn(ExperimentalSerializationApi::class)
@JvmBlocking
@JsExport.Ignore
suspend fun generateKey(type: KeyType, config: OCIKeyMetadata): OCIKeyRestApi? {
    return null
}
@OptIn(ExperimentalSerializationApi::class)
@JsPromise
@JsExport.Ignore
suspend fun generateKey(type: KeyType, config: OCIKeyMetadata): Any? {
    return null
}

And when @JvmBlocking and @JvmAsync and @JsPromise is removed, it compiles without failing.

waltkb commented 2 weeks ago

Ok, so it seems to have to do something with combining @OptIn(ExperimentalSerializationApi::class) and any of @JvmBlocking/@JvmAsync/@JsPromise.

So this works:

@JvmBlocking
@JsExport.Ignore
suspend fun generateKey(type: KeyType, config: OCIKeyMetadata): OCIKeyRestApi? {
  return null
}

And this fails with the exception org.jetbrains.kotlin.util.FileAnalysisException: While analysing <file> java.lang.IllegalArgumentException: Failed requirement.

@OptIn(ExperimentalSerializationApi::class)
@JvmBlocking
@JsExport.Ignore
suspend fun generateKey(type: KeyType, config: OCIKeyMetadata): OCIKeyRestApi? {
  return null
}
waltkb commented 2 weeks ago

I was indeed able to fix the org.jetbrains.kotlin.util.FileAnalysisException: While analysing <file> java.lang.IllegalArgumentException: Failed requirement. exception by simply removing the @OptIn(ExperimentalSerializationApi::class) annotation from the specific function.

Do you know why this exception might occur with just these multiple annotations on the same function definition?


I guess this just leaves these compilation exceptions with @JsPromise open?

I am now trying to add as many of the annotations back without the compilation failing, and in this file https://github.com/walt-id/waltid-identity/blob/main/waltid-libraries/waltid-crypto/src/jsMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.js.kt it fails in 3 places in which it didn't before:

e: waltid-identity/waltid-libraries/waltid-crypto/src/jsMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.js.kt:30:14
'@OptIn(...) @JsExport() @Serializable() @SerialName(...) actual class JWKKey : Key' has no corresponding members for expected class members:

    @JvmBlocking() @JvmAsync() @JsPromise() @Api4Js() fun getPublicKeyAsync(): Promise<out Key>

    The following declaration is incompatible because return type is different:
        @JsPromise() @Api4Js() actual fun getPublicKeyAsync(): Promise<out JWKKey>
e: waltid-identity/waltid-libraries/waltid-crypto/src/jsMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.js.kt:30:14
'@OptIn(...) @JsExport() @Serializable() @SerialName(...) actual class JWKKey : Key' has no corresponding members for expected class members:

    @JvmBlocking() @JvmAsync() @JsPromise() @Api4Js() fun getMetaAsync(): Promise<out KeyMeta>

    The following declaration is incompatible because return type is different:
        @JsPromise() @Api4Js() actual fun getMetaAsync(): Promise<out JwkKeyMeta>
e: waltid-identity/waltid-libraries/waltid-crypto/src/jsMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.js.kt:30:14
'@OptIn(...) @JsExport() @Serializable() @SerialName(...) actual class JWKKey : Key' has no corresponding members for expected class members:

    @JvmBlocking() @JvmAsync() @JsPromise() @Api4Js() fun signRawAsync(plaintext: ByteArray): Promise<out Any>

    The following declaration is incompatible because return type is different:
        @JsPromise() @Api4Js() actual fun signRawAsync(plaintext: ByteArray): Promise<out ByteArray>

All the return types that are not accepted are more specific instead of more general, so it should work fine? In this case it's not taking the return types from the expect class though (it has the same return types, not any more general ones), but the superclass that the expect class implements.

ForteScarlet commented 2 weeks ago

There's something about not being able to work with @OptIn(xxx::class), I did some simple testing and it seems that when making a copy of an annotation, any annotation that has a KClass type parameter present produces Failed requirement, for example:

annotation class Values(val target: KClass<*>)

class OptInTest {
    @Values(OptInTest::class) // error
    @JvmBlocking
    @JvmAsync
    suspend fun run(): Int = 1
}

So far I seem to have found a way to fix it, but it's also possible to just disable copying it by excluding OptIn.

build.gradle.kts:

extensions.getByType<SuspendTransformGradleExtension>().apply {
// useJvmDefault()
// replace to:
    transformers[TargetPlatform.JVM] = mutableListOf(
        // Add `kotlin.OptIn` to copyAnnotationExcludes
        jvmBlockingTransformer.copy(
            copyAnnotationExcludes = buildList {
                addAll(jvmBlockingTransformer.copyAnnotationExcludes)
                add(ClassInfo("kotlin", "OptIn"))
            }
        ),

        // Add `kotlin.OptIn` to copyAnnotationExcludes
        jvmAsyncTransformer.copy(
            copyAnnotationExcludes = buildList {
                addAll(jvmAsyncTransformer.copyAnnotationExcludes)
                add(ClassInfo("kotlin", "OptIn"))
            }
        )
    )
}

But it's also true that OptIn doesn't need to be copied 🤔, so maybe it will be added directly to jvmDefault later as well.

ForteScarlet commented 2 weeks ago

About the expect/actual classes, if you mark @JsPromise in Key, JWKKKey and JWKKey.js, that seems to solve the problem for now.

commonMain:

// Key.kt
@JsExport
abstract class Key {
    @JsPromise
    @JsExport.Ignore
    abstract suspend fun run(): Any
}

// KeyImpl.kt
expect class KeyImpl : Key {
    @JsPromise
    override suspend fun run(): ByteArray
}

jsMain:

// KeyImpl.js.kt
@JsExport
actual class KeyImpl : Key() {
    @JsExport.Ignore
    @JsPromise
    actual override suspend fun run(): ByteArray {
        TODO("Not yet implemented")
    }
}
ivanpagac commented 4 days ago

I would like to add adding @Throws(Exception::class) annonation - because of iOS error handling - will cause the the plugin not working correctly

waltkb commented 4 days ago

I'll try to show an example regarding this @Throws(Exception::class) issue here:

https://github.com/walt-id/waltid-identity/commit/785e2cd9d609583d91227d9ff9d71b27bef1b12e#diff-90007ea059844737a1e4ad7c74a672b56fe4ed6b2d84660851f47c137d5a3a07 - This is an abstract class (Key) with a set of abstract methods. When adding the annotation @Throws(Exception::class) to any of the abstract methods, a compilation error occurs, however not in Key, but the subclass JwkKey, which is an expect class, with actual class implementations in jvmMain and jsMain.

This only happens when id("love.forte.plugin.suspend-transform") version "0.9.0" or id("love.forte.plugin.suspend-transform") version "2.0.20-Beta1-0.9.1" is applied, with id("love.forte.plugin.suspend-transform") version "0.6.0" this does not come up (but of course this will not create any Java and JavaScipt blocking & async methods with Kotlin 2.0.0 / 2.0.20-Beta1).

This is the stack trace when adding @Throws(Exception::class) to any method in Key:

> Task :waltid-libraries:waltid-crypto:compileKotlinJvm FAILED

e: org.jetbrains.kotlin.util.FileAnalysisException: While analysing waltid-identity/waltid-libraries/waltid-crypto/src/commonMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.kt:14:1: java.lang.IllegalArgumentException: Failed requirement.
    at org.jetbrains.kotlin.util.AnalysisExceptionsKt.wrapIntoFileAnalysisExceptionIfNeeded(AnalysisExceptions.kt:56)
    at org.jetbrains.kotlin.fir.FirCliExceptionHandler.handleExceptionOnFileAnalysis(Utils.kt:180)
    at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:46)
    at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.resolveAndCheckFir(firUtils.kt:77)
    at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.buildResolveAndCheckFirViaLightTree(firUtils.kt:88)
    at org.jetbrains.kotlin.cli.jvm.compiler.pipeline.JvmCompilerPipelineKt.compileModuleToAnalyzedFir(jvmCompilerPipeline.kt:314)
    at org.jetbrains.kotlin.cli.jvm.compiler.pipeline.JvmCompilerPipelineKt.compileModulesUsingFrontendIrAndLightTree(jvmCompilerPipeline.kt:116)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:155)
    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:506)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:423)
    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:676)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:92)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1661)
    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:712)
    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:399)
    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:1589)
Caused by: java.lang.IllegalArgumentException: Failed requirement.
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:47)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirArgumentList.accept(FirArgumentList.kt:25)
    at org.jetbrains.kotlin.fir.expressions.impl.FirGetClassCallImpl.acceptChildren(FirGetClassCallImpl.kt:35)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitGetClassCall(FirVisitor.kt:354)
    at org.jetbrains.kotlin.fir.expressions.FirGetClassCall.accept(FirGetClassCall.kt:29)
    at org.jetbrains.kotlin.fir.expressions.impl.FirVarargArgumentsExpressionImpl.acceptChildren(FirVarargArgumentsExpressionImpl.kt:37)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
org.jetbrains.kotlin.util.FileAnalysisException: While analysing waltid-identity/waltid-libraries/waltid-crypto/src/commonMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.kt:14:1: java.lang.IllegalArgumentException: Failed requirement.
    at org.jetbrains.kotlin.util.AnalysisExceptionsKt.wrapIntoFileAnalysisExceptionIfNeeded(AnalysisExceptions.kt:56)
    at org.jetbrains.kotlin.fir.FirCliExceptionHandler.handleExceptionOnFileAnalysis(Utils.kt:180)
    at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:46)
    at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.resolveAndCheckFir(firUtils.kt:77)
    at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.buildResolveAndCheckFirViaLightTree(firUtils.kt:88)
    at org.jetbrains.kotlin.cli.jvm.compiler.pipeline.JvmCompilerPipelineKt.compileModuleToAnalyzedFir(jvmCompilerPipeline.kt:314)
    at org.jetbrains.kotlin.cli.jvm.compiler.pipeline.JvmCompilerPipelineKt.compileModulesUsingFrontendIrAndLightTree(jvmCompilerPipeline.kt:116)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:155)
    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:506)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:423)
    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:676)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:92)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1661)
    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:712)
    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:399)
    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:1589)

    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitAnnotationContainer(FirVisitor.kt:27)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitStatement(FirDefaultVisitor.kt:33)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitExpression(FirDefaultVisitor.kt:36)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitVarargArgumentsExpression(FirDefaultVisitor.kt:180)
    at org.jetbrains.kotlin.fir.expressions.FirVarargArgumentsExpression.accept(FirVarargArgumentsExpression.kt:42)
    at org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList.acceptChildren(FirResolvedArgumentList.kt:35)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:48)
Caused by: java.lang.IllegalArgumentException: Failed requirement.

    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirArgumentList.accept(FirArgumentList.kt:25)
    at org.jetbrains.kotlin.fir.expressions.impl.FirAnnotationCallImpl.acceptChildren(FirAnnotationCallImpl.kt:48)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitAnnotationCall(GeneratedDeclarationValidation.kt:39)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitAnnotationCall(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirAnnotationCall.accept(FirAnnotationCall.kt:40)
    at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.acceptChildren(FirSimpleFunctionImpl.kt:69)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitSimpleFunction(FirVisitor.kt:138)
    at org.jetbrains.kotlin.fir.declarations.FirSimpleFunction.accept(FirSimpleFunction.kt:51)
    at org.jetbrains.kotlin.fir.declarations.GeneratedDeclarationValidationKt.validate(GeneratedDeclarationValidation.kt:21)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage.generateMemberFunctions(FirGeneratedScopes.kt:199)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage.access$generateMemberFunctions(FirGeneratedScopes.kt:175)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:71)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:69)
    at org.jetbrains.kotlin.fir.caches.FirThreadUnsafeCache.getValue(FirThreadUnsafeCachesFactory.kt:40)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedClassDeclaredMemberScope.processFunctionsByName(FirGeneratedScopes.kt:281)
    at org.jetbrains.kotlin.fir.scopes.FirCompositeScope.processFunctionsByName(FirCompositeScope.kt:55)
    at org.jetbrains.kotlin.fir.scopes.FirNameAwareCompositeScope.processFunctionsByName(FirCompositeScope.kt:82)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectDeclaredFunctions(AbstractFirUseSiteMemberScope.kt:78)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectFunctions(AbstractFirUseSiteMemberScope.kt:72)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.processFunctionsByName(AbstractFirUseSiteMemberScope.kt:63)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.getFunctionsFromSupertypesByName(AbstractFirUseSiteMemberScope.kt:148)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectFunctionsFromSupertypes(AbstractFirUseSiteMemberScope.kt:98)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectFunctions(AbstractFirUseSiteMemberScope.kt:74)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.processFunctionsByName(AbstractFirUseSiteMemberScope.kt:63)
    at org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScopeKt.processAllFunctions(FirContainingNamesAwareScope.kt:19)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:44)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker$ForExpectClass.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:39)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker$ForExpectClass.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:36)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.check(DeclarationCheckersDiagnosticComponent.kt:133)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.visitRegularClass(DeclarationCheckersDiagnosticComponent.kt:57)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.visitRegularClass(DeclarationCheckersDiagnosticComponent.kt:19)
    at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
    at org.jetbrains.kotlin.fir.analysis.collectors.CheckerRunningDiagnosticCollectorVisitor.checkElement(CheckerRunningDiagnosticCollectorVisitor.kt:24)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.access$checkElement(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitWithDeclarationAndReceiver(AbstractDiagnosticCollectorVisitor.kt:1349)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitClassAndChildren(AbstractDiagnosticCollectorVisitor.kt:86)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:91)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
    at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.acceptChildren(FirFileImpl.kt:56)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:37)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:1124)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.declarations.FirFile.accept(FirFile.kt:42)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector.collectDiagnostics(AbstractDiagnosticCollector.kt:36)
    at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:34)
    ... 33 more
> Task :waltid-libraries:waltid-crypto:compileKotlinJs FAILED

e: org.jetbrains.kotlin.util.FileAnalysisException: While analysing waltid-identity/waltid-libraries/waltid-crypto/src/commonMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.kt:14:1: java.lang.IllegalArgumentException: Failed requirement.
    at org.jetbrains.kotlin.util.AnalysisExceptionsKt.wrapIntoFileAnalysisExceptionIfNeeded(AnalysisExceptions.kt:56)
    at org.jetbrains.kotlin.fir.FirCliExceptionHandler.handleExceptionOnFileAnalysis(Utils.kt:180)
    at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:46)
    at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.resolveAndCheckFir(firUtils.kt:77)
    at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.buildResolveAndCheckFirViaLightTree(firUtils.kt:88)
    at org.jetbrains.kotlin.cli.js.klib.JsCompilerPipelineKt.compileModulesToAnalyzedFirWithLightTree(jsCompilerPipeline.kt:190)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.processSourceModuleWithK2(K2JsIrCompiler.kt:584)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.produceSourceModule(K2JsIrCompiler.kt:485)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.doExecute(K2JsIrCompiler.kt:325)
    at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:109)
    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.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:211)
    at org.jetbrains.kotlin.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:86)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:506)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:423)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:301)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:129)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile$default(IncrementalCompilerRunner.kt:113)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execJsIncrementalCompiler(CompileServiceImpl.kt:609)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execJsIncrementalCompiler(CompileServiceImpl.kt:92)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1759)
    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:712)
    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:399)
    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:1589)
Caused by: java.lang.IllegalArgumentException: Failed requirement.
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:47)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirArgumentList.accept(FirArgumentList.kt:25)
    at org.jetbrains.kotlin.fir.expressions.impl.FirGetClassCallImpl.acceptChildren(FirGetClassCallImpl.kt:35)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitGetClassCall(FirVisitor.kt:354)
    at org.jetbrains.kotlin.fir.expressions.FirGetClassCall.accept(FirGetClassCall.kt:29)
    at org.jetbrains.kotlin.fir.expressions.impl.FirVarargArgumentsExpressionImpl.acceptChildren(FirVarargArgumentsExpressionImpl.kt:37)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitAnnotationContainer(FirVisitor.kt:27)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitStatement(FirDefaultVisitor.kt:33)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitExpression(FirDefaultVisitor.kt:36)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitVarargArgumentsExpression(FirDefaultVisitor.kt:180)
org.jetbrains.kotlin.util.FileAnalysisException: While analysing waltid-identity/waltid-libraries/waltid-crypto/src/commonMain/kotlin/id/walt/crypto/keys/jwk/JWKKey.kt:14:1: java.lang.IllegalArgumentException: Failed requirement.
    at org.jetbrains.kotlin.util.AnalysisExceptionsKt.wrapIntoFileAnalysisExceptionIfNeeded(AnalysisExceptions.kt:56)
    at org.jetbrains.kotlin.fir.FirCliExceptionHandler.handleExceptionOnFileAnalysis(Utils.kt:180)
    at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:46)
    at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.resolveAndCheckFir(firUtils.kt:77)
    at org.jetbrains.kotlin.fir.pipeline.FirUtilsKt.buildResolveAndCheckFirViaLightTree(firUtils.kt:88)
    at org.jetbrains.kotlin.cli.js.klib.JsCompilerPipelineKt.compileModulesToAnalyzedFirWithLightTree(jsCompilerPipeline.kt:190)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.processSourceModuleWithK2(K2JsIrCompiler.kt:584)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.produceSourceModule(K2JsIrCompiler.kt:485)
    at org.jetbrains.kotlin.cli.js.K2JsIrCompiler.doExecute(K2JsIrCompiler.kt:325)
    at org.jetbrains.kotlin.cli.js.K2JSCompiler.doExecute(K2JSCompiler.java:109)
    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.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:211)
    at org.jetbrains.kotlin.incremental.IncrementalJsCompilerRunner.runCompiler(IncrementalJsCompilerRunner.kt:86)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:506)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:423)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:301)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:129)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile$default(IncrementalCompilerRunner.kt:113)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execJsIncrementalCompiler(CompileServiceImpl.kt:609)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execJsIncrementalCompiler(CompileServiceImpl.kt:92)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1759)
    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:712)
    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:399)
    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:1589)

    at org.jetbrains.kotlin.fir.expressions.FirVarargArgumentsExpression.accept(FirVarargArgumentsExpression.kt:42)
    at org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList.acceptChildren(FirResolvedArgumentList.kt:35)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:48)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitArgumentList(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirArgumentList.accept(FirArgumentList.kt:25)
    at org.jetbrains.kotlin.fir.expressions.impl.FirAnnotationCallImpl.acceptChildren(FirAnnotationCallImpl.kt:48)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitAnnotationCall(GeneratedDeclarationValidation.kt:39)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitAnnotationCall(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.expressions.FirAnnotationCall.accept(FirAnnotationCall.kt:40)
    at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.acceptChildren(FirSimpleFunctionImpl.kt:69)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:31)
    at org.jetbrains.kotlin.fir.declarations.FirGeneratedElementsValidator.visitElement(GeneratedDeclarationValidation.kt:29)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitSimpleFunction(FirVisitor.kt:138)
    at org.jetbrains.kotlin.fir.declarations.FirSimpleFunction.accept(FirSimpleFunction.kt:51)
    at org.jetbrains.kotlin.fir.declarations.GeneratedDeclarationValidationKt.validate(GeneratedDeclarationValidation.kt:21)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage.generateMemberFunctions(FirGeneratedScopes.kt:199)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage.access$generateMemberFunctions(FirGeneratedScopes.kt:175)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:71)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedMemberDeclarationsStorage$CallableStorage$special$$inlined$createCache$1.invoke(FirCachesFactory.kt:69)
    at org.jetbrains.kotlin.fir.caches.FirThreadUnsafeCache.getValue(FirThreadUnsafeCachesFactory.kt:40)
    at org.jetbrains.kotlin.fir.scopes.impl.FirGeneratedClassDeclaredMemberScope.processFunctionsByName(FirGeneratedScopes.kt:281)
    at org.jetbrains.kotlin.fir.scopes.FirCompositeScope.processFunctionsByName(FirCompositeScope.kt:55)
    at org.jetbrains.kotlin.fir.scopes.FirNameAwareCompositeScope.processFunctionsByName(FirCompositeScope.kt:82)
    at org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider$PlatformDependentFilteringScope.processFunctionsByName(FirKotlinScopeProvider.kt:144)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectDeclaredFunctions(AbstractFirUseSiteMemberScope.kt:78)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectFunctions(AbstractFirUseSiteMemberScope.kt:72)
Caused by: java.lang.IllegalArgumentException: Failed requirement.

    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.processFunctionsByName(AbstractFirUseSiteMemberScope.kt:63)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.getFunctionsFromSupertypesByName(AbstractFirUseSiteMemberScope.kt:148)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectFunctionsFromSupertypes(AbstractFirUseSiteMemberScope.kt:98)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.collectFunctions(AbstractFirUseSiteMemberScope.kt:74)
    at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.processFunctionsByName(AbstractFirUseSiteMemberScope.kt:63)
    at org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScopeKt.processAllFunctions(FirContainingNamesAwareScope.kt:19)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:44)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker$ForExpectClass.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:39)
    at org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirMultipleDefaultsInheritedFromSupertypesChecker$ForExpectClass.check(FirMultipleDefaultsInheritedFromSupertypesChecker.kt:36)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.check(DeclarationCheckersDiagnosticComponent.kt:133)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.visitRegularClass(DeclarationCheckersDiagnosticComponent.kt:57)
    at org.jetbrains.kotlin.fir.analysis.collectors.components.DeclarationCheckersDiagnosticComponent.visitRegularClass(DeclarationCheckersDiagnosticComponent.kt:19)
    at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
    at org.jetbrains.kotlin.fir.analysis.collectors.CheckerRunningDiagnosticCollectorVisitor.checkElement(CheckerRunningDiagnosticCollectorVisitor.kt:24)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.access$checkElement(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitWithDeclarationAndReceiver(AbstractDiagnosticCollectorVisitor.kt:1349)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitClassAndChildren(AbstractDiagnosticCollectorVisitor.kt:86)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:91)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitRegularClass(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.declarations.FirRegularClass.accept(FirRegularClass.kt:48)
    at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.acceptChildren(FirFileImpl.kt:56)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitNestedElements(AbstractDiagnosticCollectorVisitor.kt:37)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:1124)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollectorVisitor.visitFile(AbstractDiagnosticCollectorVisitor.kt:29)
    at org.jetbrains.kotlin.fir.declarations.FirFile.accept(FirFile.kt:42)
    at org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector.collectDiagnostics(AbstractDiagnosticCollector.kt:36)
    at org.jetbrains.kotlin.fir.pipeline.AnalyseKt.runCheckers(analyse.kt:34)
    ... 36 more
ForteScarlet commented 4 days ago

Ao! I did try to fix this in #60 but I seem to have forgotten to release it .... I've released version v2.0.20-Beta1-0.9.2, it should be fixed in #60, let me know if there are still problems!

Maybe I need to consider configuring a CI that automatically publishes snapshot versions for this kind of issue?

waltkb commented 4 days ago

Hi, I just tried id("love.forte.plugin.suspend-transform") version "2.0.20-Beta1-0.9.2" and I can confirm that compilation does indeed not fail there.

ForteScarlet commented 4 days ago

So it looks like the problem should be solved ~ this issue might be completed, or are there any other errors?

waltkb commented 3 days ago

So it looks like the problem should be solved ~ this issue might be completed, or are there any other errors?

Yes indeed, I finally got around to try the generated functions, and they work great for the most part. So this issue is fixed from what I can see, I will close it now. Thank you very much for your help!