micronaut-projects / micronaut-test

Repository for Test Related Utilities for Micronaut
Apache License 2.0
83 stars 61 forks source link

Errors when running with kotlins new K2 compiler #759

Open KDanisme opened 1 year ago

KDanisme commented 1 year ago

Expected Behavior

Run Kotest5 test

Actual Behaviour

Im getting this Error:

kotlin.NotImplementedError: An operation is not implemented: Should not be here: class org.jetbrains.kotlin.fir.expressions.impl.FirClassReferenceExpressionImpl <getClass>(R|io/micronaut/test/extensions/junit5/MicronautJunit5Extension|)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.visitElement(Fir2IrVisitor.kt:76)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.visitElement(Fir2IrVisitor.kt:60)
    at org.jetbrains.kotlin.fir.visitors.FirVisitor.visitAnnotationContainer(FirVisitor.kt:161)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitStatement(FirDefaultVisitor.kt:163)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitExpression(FirDefaultVisitor.kt:165)
    at org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor.visitClassReferenceExpression(FirDefaultVisitor.kt:219)
    at org.jetbrains.kotlin.fir.expressions.FirClassReferenceExpression.accept(FirClassReferenceExpression.kt:24)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.convertToIrExpression$fir2ir(Fir2IrVisitor.kt:696)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.convertToIrExpression$fir2ir$default(Fir2IrVisitor.kt:669)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor$visitGetClassCall$1$1.invoke(Fir2IrVisitor.kt:1344)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor$visitGetClassCall$1$1.invoke(Fir2IrVisitor.kt:1340)
    at org.jetbrains.kotlin.fir.backend.ConversionUtilsKt.convertWithOffsets(ConversionUtils.kt:78)
    at org.jetbrains.kotlin.fir.backend.ConversionUtilsKt.convertWithOffsets(ConversionUtils.kt:68)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.visitGetClassCall(Fir2IrVisitor.kt:1340)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.visitGetClassCall(Fir2IrVisitor.kt:60)
    at org.jetbrains.kotlin.fir.expressions.FirGetClassCall.accept(FirGetClassCall.kt:25)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.convertToIrExpression$fir2ir(Fir2IrVisitor.kt:691)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.convertToIrExpression$fir2ir$default(Fir2IrVisitor.kt:669)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.convertToIrVarargElement(Fir2IrVisitor.kt:424)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.access$convertToIrVarargElement(Fir2IrVisitor.kt:60)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor$convertToArrayOfCall$1.invoke(Fir2IrVisitor.kt:1366)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor$convertToArrayOfCall$1.invoke(Fir2IrVisitor.kt:1355)
    at org.jetbrains.kotlin.fir.backend.ConversionUtilsKt.convertWithOffsets(ConversionUtils.kt:78)
    at org.jetbrains.kotlin.fir.backend.ConversionUtilsKt.convertWithOffsets(ConversionUtils.kt:68)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.convertToArrayOfCall(Fir2IrVisitor.kt:1355)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.convertToIrExpression$fir2ir(Fir2IrVisitor.kt:688)
    at org.jetbrains.kotlin.fir.backend.Fir2IrVisitor.convertToIrExpression$fir2ir$default(Fir2IrVisitor.kt:669)
    at org.jetbrains.kotlin.fir.backend.generators.CallAndReferenceGenerator.convertArgument(CallAndReferenceGenerator.kt:917)
    at org.jetbrains.kotlin.fir.backend.generators.CallAndReferenceGenerator.applyArgumentsWithReorderingIfNeeded(CallAndReferenceGenerator.kt:844)
    at org.jetbrains.kotlin.fir.backend.generators.CallAndReferenceGenerator.applyCallArguments$fir2ir(CallAndReferenceGenerator.kt:762)
    at org.jetbrains.kotlin.fir.backend.generators.CallAndReferenceGenerator.convertToIrConstructorCall(CallAndReferenceGenerator.kt:658)
    at org.jetbrains.kotlin.fir.lazy.AbstractFir2IrLazyDeclaration$createLazyAnnotations$1.invoke(AbstractFir2IrLazyDeclaration.kt:31)
    at org.jetbrains.kotlin.fir.lazy.AbstractFir2IrLazyDeclaration$createLazyAnnotations$1.invoke(AbstractFir2IrLazyDeclaration.kt:29)
    at org.jetbrains.kotlin.ir.declarations.lazy.SynchronizedLazyVar.getValue(lazyUtil.kt:29)
    at org.jetbrains.kotlin.ir.declarations.lazy.SynchronizedLazyVar.getValue(lazyUtil.kt:40)
    at org.jetbrains.kotlin.fir.lazy.Fir2IrLazyClass.getAnnotations(Fir2IrLazyClass.kt:51)
    at org.jetbrains.kotlin.ir.descriptors.IrBasedDeclarationDescriptor$annotations$2.invoke(IrBasedDescriptors.kt:43)
    at org.jetbrains.kotlin.ir.descriptors.IrBasedDeclarationDescriptor$annotations$2.invoke(IrBasedDescriptors.kt:42)
    at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
    at org.jetbrains.kotlin.ir.descriptors.IrBasedDeclarationDescriptor.getAnnotations(IrBasedDescriptors.kt:42)
    at org.jetbrains.kotlin.extensions.AnnotationBasedExtension.isASpecialAnnotation(AnnotationBasedExtension.kt:58)
    at org.jetbrains.kotlin.extensions.AnnotationBasedExtension.isASpecialAnnotation$default(AnnotationBasedExtension.kt:45)
    at org.jetbrains.kotlin.extensions.AnnotationBasedExtension.hasSpecialAnnotation(AnnotationBasedExtension.kt:33)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.isAnnotatedWithNoarg(NoArgIrGenerationExtension.kt:95)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.needsNoargConstructor(NoArgIrGenerationExtension.kt:91)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitClass(NoArgIrGenerationExtension.kt:50)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitClass(IrElementVisitorVoid.kt:111)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitClass(NoArgIrGenerationExtension.kt:36)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitClass(NoArgIrGenerationExtension.kt:36)
    at org.jetbrains.kotlin.ir.declarations.IrClass.accept(IrClass.kt:64)
    at org.jetbrains.kotlin.ir.declarations.IrFile.acceptChildren(IrFile.kt:36)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitElement(NoArgIrGenerationExtension.kt:44)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitPackageFragment(IrElementVisitorVoid.kt:190)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitPackageFragment(NoArgIrGenerationExtension.kt:36)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitFile(IrElementVisitorVoid.kt:200)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitFile(NoArgIrGenerationExtension.kt:36)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitFile(IrElementVisitorVoid.kt:198)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitFile(NoArgIrGenerationExtension.kt:36)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitFile(NoArgIrGenerationExtension.kt:36)
    at org.jetbrains.kotlin.ir.declarations.IrFile.accept(IrFile.kt:30)
    at org.jetbrains.kotlin.ir.declarations.IrModuleFragment.acceptChildren(IrModuleFragment.kt:47)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitElement(NoArgIrGenerationExtension.kt:44)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitModuleFragment(IrElementVisitorVoid.kt:160)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitModuleFragment(NoArgIrGenerationExtension.kt:36)
    at org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid$DefaultImpls.visitModuleFragment(IrElementVisitorVoid.kt:158)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitModuleFragment(NoArgIrGenerationExtension.kt:36)
    at org.jetbrains.kotlin.noarg.NoArgIrTransformer.visitModuleFragment(NoArgIrGenerationExtension.kt:36)
    at org.jetbrains.kotlin.ir.declarations.IrModuleFragment.accept(IrModuleFragment.kt:41)
    at org.jetbrains.kotlin.noarg.NoArgIrGenerationExtension.generate(NoArgIrGenerationExtension.kt:32)
    at org.jetbrains.kotlin.fir.backend.Fir2IrConverter.runSourcesConversion(Fir2IrConverter.kt:107)
    at org.jetbrains.kotlin.fir.backend.Fir2IrConverter$Companion.createModuleFragmentWithSymbolTable(Fir2IrConverter.kt:566)
    at org.jetbrains.kotlin.fir.backend.Fir2IrConverter$Companion.createModuleFragmentWithoutSignatures(Fir2IrConverter.kt:487)
    at org.jetbrains.kotlin.fir.pipeline.ConvertToIrKt.convertToIr(convertToIr.kt:100)
    at org.jetbrains.kotlin.fir.pipeline.ConvertToIrKt.convertToIrAndActualize(convertToIr.kt:66)
    at org.jetbrains.kotlin.cli.jvm.compiler.pipeline.CompilerPipelineKt.convertAnalyzedFirToIr(compilerPipeline.kt:226)
    at org.jetbrains.kotlin.cli.jvm.compiler.pipeline.CompilerPipelineKt.compileModulesUsingFrontendIrAndLightTree(compilerPipeline.kt:148)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:149)
    at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:53)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:100)
    at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:46)
    at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:101)
    at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:495)
    at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:133)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.doCompile(IncrementalCompilerRunner.kt:486)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:409)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileNonIncrementally(IncrementalCompilerRunner.kt:290)
    at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:112)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:627)
    at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:101)
    at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1587)
    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)

Steps To Reproduce

Running the tests

Environment Information

Example Application

No response

Version

4.0.0-M2

graemerocher commented 1 year ago

Seems like a bug in the K2 compiler. Please provide an example app