Error:Kotlin: [Internal Error] org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Cannot serialize error type: [ERROR : Unknown type parameter 0] Cause: Cannot serialize error type: [ERROR : Unknown type parameter 0] File being compiled and position: (61,38) in /Users/nat/projects/krouton/src/test/kotlin/com/natpryce/krouton/example/CountersExample.kt PsiElement: { (counter, value) -> when (exchange.requestMethod) { "POST" -> { exchange.sendInt(counter.addAndGet(value)) } "PUT" -> { counter.set(value) exchange.sendInt(value) } else -> { exchange.sendError(HTTP_BAD_METHOD) } } } The root cause was thrown at: SerializerExtension.kt:62 at org.jetbrains.kotlin.codegen.ExpressionCodegen.genQualified(ExpressionCodegen.java:323) at org.jetbrains.kotlin.codegen.ExpressionCodegen.genQualified(ExpressionCodegen.java:289) at org.jetbrains.kotlin.codegen.ExpressionCodegen.gen(ExpressionCodegen.java:329) at org.jetbrains.kotlin.codegen.CallGenerator$DefaultCallGenerator.genValueAndPut(CallGenerator.kt:64) at org.jetbrains.kotlin.codegen.CallBasedArgumentGenerator.generateExpression(CallBasedArgumentGenerator.java:62) at org.jetbrains.kotlin.codegen.ArgumentGenerator.generate(ArgumentGenerator.kt:66) at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2202) at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2182) at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:44) at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:23) at org.jetbrains.kotlin.codegen.OperationStackValue.putSelector(StackValue.kt:65) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:106) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:99) at org.jetbrains.kotlin.codegen.StackValue$StackValueWithSimpleReceiver.store(StackValue.java:1696) at org.jetbrains.kotlin.codegen.StackValue.store(StackValue.java:128) at org.jetbrains.kotlin.codegen.ExpressionCodegen.lambda$genVarargs$15(ExpressionCodegen.java:2641) at org.jetbrains.kotlin.codegen.OperationStackValue.putSelector(StackValue.kt:65) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:106) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:99) at org.jetbrains.kotlin.codegen.CallGenerator$DefaultCallGenerator.putValueIfNeeded(CallGenerator.kt:74) at org.jetbrains.kotlin.codegen.CallBasedArgumentGenerator.generateVararg(CallBasedArgumentGenerator.java:76) at org.jetbrains.kotlin.codegen.ArgumentGenerator.generate(ArgumentGenerator.kt:73) at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2202) at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2182) at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:44) at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:23) at org.jetbrains.kotlin.codegen.OperationStackValue.putSelector(StackValue.kt:65) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:106) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:99) at org.jetbrains.kotlin.codegen.StackValue.moveToTopOfStack(StackValue.java:95) at org.jetbrains.kotlin.codegen.StackValue$CallReceiver.putSelector(StackValue.java:1596) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:106) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:99) at org.jetbrains.kotlin.codegen.ExpressionCodegen.putReceiverAndInlineMarkerIfNeeded(ExpressionCodegen.java:2259) at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2194) at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2182) at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:44) at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:23) at org.jetbrains.kotlin.codegen.OperationStackValue.putSelector(StackValue.kt:65) at org.jetbrains.kotlin.codegen.StackValueWithLeaveTask.putSelector(StackValue.kt:57) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:106) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:99) at org.jetbrains.kotlin.codegen.ExpressionCodegen.putStackValue(ExpressionCodegen.java:349) at org.jetbrains.kotlin.codegen.ExpressionCodegen.gen(ExpressionCodegen.java:334) at org.jetbrains.kotlin.codegen.ExpressionCodegen.returnExpression(ExpressionCodegen.java:1607) at org.jetbrains.kotlin.codegen.FunctionGenerationStrategy$FunctionDefault.doGenerateBody(FunctionGenerationStrategy.java:52) at org.jetbrains.kotlin.codegen.ClosureGenerationStrategy.doGenerateBody(ClosureGenerationStrategy.kt:31) at org.jetbrains.kotlin.codegen.FunctionGenerationStrategy$CodegenBased.generateBody(FunctionGenerationStrategy.java:72) at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethodBody(FunctionCodegen.java:543) at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethod(FunctionCodegen.java:306) at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethod(FunctionCodegen.java:176) at org.jetbrains.kotlin.codegen.ClosureCodegen.generateClosureBody(ClosureCodegen.java:189) at org.jetbrains.kotlin.codegen.ClosureCodegen.generateBody(ClosureCodegen.java:177) at org.jetbrains.kotlin.codegen.MemberCodegen.generate(MemberCodegen.java:145) at org.jetbrains.kotlin.codegen.ExpressionCodegen.genClosure(ExpressionCodegen.java:1016) at org.jetbrains.kotlin.codegen.ExpressionCodegen.genClosure(ExpressionCodegen.java:990) at org.jetbrains.kotlin.codegen.ExpressionCodegen.visitLambdaExpression(ExpressionCodegen.java:981) at org.jetbrains.kotlin.codegen.ExpressionCodegen.visitLambdaExpression(ExpressionCodegen.java:122) at org.jetbrains.kotlin.psi.KtLambdaExpression.accept(KtLambdaExpression.java:37) at org.jetbrains.kotlin.codegen.ExpressionCodegen.genQualified(ExpressionCodegen.java:307) at org.jetbrains.kotlin.codegen.ExpressionCodegen.genQualified(ExpressionCodegen.java:289) at org.jetbrains.kotlin.codegen.ExpressionCodegen.gen(ExpressionCodegen.java:329) at org.jetbrains.kotlin.codegen.CallGenerator$DefaultCallGenerator.genValueAndPut(CallGenerator.kt:64) at org.jetbrains.kotlin.codegen.CallBasedArgumentGenerator.generateExpression(CallBasedArgumentGenerator.java:62) at org.jetbrains.kotlin.codegen.ArgumentGenerator.generate(ArgumentGenerator.kt:66) at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2202) at org.jetbrains.kotlin.codegen.ExpressionCodegen.invokeMethodWithArguments(ExpressionCodegen.java:2182) at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:44) at org.jetbrains.kotlin.codegen.Callable$invokeMethodWithArguments$1.invoke(Callable.kt:23) at org.jetbrains.kotlin.codegen.OperationStackValue.putSelector(StackValue.kt:65) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:106) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:99) at org.jetbrains.kotlin.codegen.AsmUtil$1.putSelector(AsmUtil.java:708) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:106) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:99) at org.jetbrains.kotlin.codegen.ExpressionCodegen.putStackValue(ExpressionCodegen.java:349) at org.jetbrains.kotlin.codegen.ExpressionCodegen.lambda$visitReturnExpression$11(ExpressionCodegen.java:1532) at org.jetbrains.kotlin.codegen.OperationStackValue.putSelector(StackValue.kt:65) at org.jetbrains.kotlin.codegen.StackValueWithLeaveTask.putSelector(StackValue.kt:57) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:106) at org.jetbrains.kotlin.codegen.StackValue.put(StackValue.java:99) at org.jetbrains.kotlin.codegen.ExpressionCodegen.putStackValue(ExpressionCodegen.java:349) at org.jetbrains.kotlin.codegen.ExpressionCodegen.gen(ExpressionCodegen.java:334) at org.jetbrains.kotlin.codegen.ExpressionCodegen.returnExpression(ExpressionCodegen.java:1607) at org.jetbrains.kotlin.codegen.FunctionGenerationStrategy$FunctionDefault.doGenerateBody(FunctionGenerationStrategy.java:52) at org.jetbrains.kotlin.codegen.FunctionGenerationStrategy$CodegenBased.generateBody(FunctionGenerationStrategy.java:72) at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethodBody(FunctionCodegen.java:543) at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethod(FunctionCodegen.java:306) at org.jetbrains.kotlin.codegen.FunctionCodegen.generateMethod(FunctionCodegen.java:176) at org.jetbrains.kotlin.codegen.FunctionCodegen.gen(FunctionCodegen.java:147) at org.jetbrains.kotlin.codegen.MemberCodegen.genSimpleMember(MemberCodegen.java:213) at org.jetbrains.kotlin.codegen.PackagePartCodegen.generateBody(PackagePartCodegen.java:95) at org.jetbrains.kotlin.codegen.MemberCodegen.generate(MemberCodegen.java:145) at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generateFile(PackageCodegenImpl.java:133) at org.jetbrains.kotlin.codegen.PackageCodegenImpl.generate(PackageCodegenImpl.java:66) at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.generatePackage(KotlinCodegenFacade.java:99) at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.doGenerateFiles(KotlinCodegenFacade.java:77) at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:44) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.generate(KotlinToJVMBytecodeCompiler.kt:442) at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMBytecodeCompiler.kt:153) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:170) at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:58) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:93) at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:46) at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:92) at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$$inlined$ifAlive$lambda$1.invoke(CompileServiceImpl.kt:381) at org.jetbrains.kotlin.daemon.CompileServiceImpl$compile$$inlined$ifAlive$lambda$1.invoke(CompileServiceImpl.kt:98) at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:832) at org.jetbrains.kotlin.daemon.CompileServiceImpl$doCompile$$inlined$ifAlive$lambda$2.invoke(CompileServiceImpl.kt:98) at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137) at org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:859) at org.jetbrains.kotlin.daemon.CompileServiceImpl.doCompile(CompileServiceImpl.kt:831) at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:379) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) at sun.rmi.transport.Transport$1.run(Transport.java:200) at sun.rmi.transport.Transport$1.run(Transport.java:197) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:196) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$256(TCPTransport.java:683) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalStateException: Cannot serialize error type: [ERROR : Unknown type parameter 0] at org.jetbrains.kotlin.serialization.SerializerExtension.serializeErrorType(SerializerExtension.kt:62) at org.jetbrains.kotlin.codegen.serialization.JvmSerializerExtension.serializeErrorType(JvmSerializerExtension.java:210) at org.jetbrains.kotlin.serialization.DescriptorSerializer.type(DescriptorSerializer.kt:434) at org.jetbrains.kotlin.serialization.DescriptorSerializer.typeArgument(DescriptorSerializer.kt:537) at org.jetbrains.kotlin.serialization.DescriptorSerializer.fillFromPossiblyInnerType(DescriptorSerializer.kt:505) at org.jetbrains.kotlin.serialization.DescriptorSerializer.type(DescriptorSerializer.kt:463) at org.jetbrains.kotlin.serialization.DescriptorSerializer.type(DescriptorSerializer.kt:487) at org.jetbrains.kotlin.serialization.DescriptorSerializer.typeArgument(DescriptorSerializer.kt:537) at org.jetbrains.kotlin.serialization.DescriptorSerializer.fillFromPossiblyInnerType(DescriptorSerializer.kt:505) at org.jetbrains.kotlin.serialization.DescriptorSerializer.type(DescriptorSerializer.kt:463) at org.jetbrains.kotlin.serialization.DescriptorSerializer.valueParameter(DescriptorSerializer.kt:378) at org.jetbrains.kotlin.serialization.DescriptorSerializer.functionProto(DescriptorSerializer.kt:266) at org.jetbrains.kotlin.codegen.ClosureCodegen.generateKotlinMetadataAnnotation(ClosureCodegen.java:243) at org.jetbrains.kotlin.codegen.MemberCodegen.generate(MemberCodegen.java:152) at org.jetbrains.kotlin.codegen.ExpressionCodegen.genClosure(ExpressionCodegen.java:1016) at org.jetbrains.kotlin.codegen.ExpressionCodegen.genClosure(ExpressionCodegen.java:990) at org.jetbrains.kotlin.codegen.ExpressionCodegen.visitLambdaExpression(ExpressionCodegen.java:981) at org.jetbrains.kotlin.codegen.ExpressionCodegen.visitLambdaExpression(ExpressionCodegen.java:122) at org.jetbrains.kotlin.psi.KtLambdaExpression.accept(KtLambdaExpression.java:37) at org.jetbrains.kotlin.codegen.ExpressionCodegen.genQualified(ExpressionCodegen.java:307) ... 129 more