Kotlin / kotlin-jupyter

Kotlin kernel for Jupyter/IPython
Apache License 2.0
1.1k stars 105 forks source link

Returning a lambda as a result causes an exception #323

Closed strangepleasures closed 2 years ago

strangepleasures commented 2 years ago

Evaluation of

val foo: (Int) -> Int = {it + 1}
foo

Produces the following error

Enclosing constructor not found
java.lang.InternalError: Enclosing constructor not found
    at java.base/java.lang.Class.getEnclosingConstructor(Class.java:1447)
    at kotlin.reflect.jvm.internal.impl.descriptors.runtime.structure.ReflectClassUtilKt.getClassId(reflectClassUtil.kt:62)
    at kotlin.reflect.jvm.internal.RuntimeTypeMapper.mapJvmClassToKotlinClassId(RuntimeTypeMapper.kt:272)
    at kotlin.reflect.jvm.internal.KClassImpl.getClassId(KClassImpl.kt:186)
    at kotlin.reflect.jvm.internal.KClassImpl.access$getClassId$p(KClassImpl.kt:44)
    at kotlin.reflect.jvm.internal.KClassImpl$Data$descriptor$2.invoke(KClassImpl.kt:49)
    at kotlin.reflect.jvm.internal.KClassImpl$Data$descriptor$2.invoke(KClassImpl.kt:47)
    at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.invoke(ReflectProperties.java:93)
    at kotlin.reflect.jvm.internal.ReflectProperties$Val.getValue(ReflectProperties.java:32)
    at kotlin.reflect.jvm.internal.KClassImpl$Data.getDescriptor(KClassImpl.kt)
    at kotlin.reflect.jvm.internal.KClassImpl$Data$supertypes$2.invoke(KClassImpl.kt:125)
    at kotlin.reflect.jvm.internal.KClassImpl$Data$supertypes$2.invoke(KClassImpl.kt:47)
    at kotlin.reflect.jvm.internal.ReflectProperties$LazySoftVal.invoke(ReflectProperties.java:93)
    at kotlin.reflect.jvm.internal.ReflectProperties$Val.getValue(ReflectProperties.java:32)
    at kotlin.reflect.jvm.internal.KClassImpl$Data.getSupertypes(KClassImpl.kt)
    at kotlin.reflect.jvm.internal.KClassImpl.getSupertypes(KClassImpl.kt:254)
    at kotlin.reflect.full.KClasses.getSuperclasses(KClasses.kt:184)
    at kotlin.reflect.full.KClasses$isSubclassOf$1.get(KClasses.kt:233)
    at kotlin.jvm.internal.PropertyReference1.invoke(PropertyReference1.java:35)
    at kotlin.reflect.full.KClasses$sam$org_jetbrains_kotlin_utils_DFS_Neighbors$0.getNeighbors(KClasses.kt)
    at kotlin.reflect.jvm.internal.impl.utils.DFS.doDfs(DFS.java:98)
    at kotlin.reflect.jvm.internal.impl.utils.DFS.dfs(DFS.java:27)
    at kotlin.reflect.jvm.internal.impl.utils.DFS.dfs(DFS.java:37)
    at kotlin.reflect.jvm.internal.impl.utils.DFS.ifAny(DFS.java:47)
    at kotlin.reflect.full.KClasses.isSubclassOf(KClasses.kt:233)
    at org.jetbrains.kotlinx.jupyter.api.SubtypeRendererTypeHandler.acceptsType(renderersHandling.kt:138)
    at org.jetbrains.kotlinx.jupyter.api.RendererTypeHandler$DefaultImpls.accepts(renderersHandling.kt:62)
    at org.jetbrains.kotlinx.jupyter.api.PrecompiledRendererTypeHandler$DefaultImpls.accepts(renderersHandling.kt)
    at org.jetbrains.kotlinx.jupyter.api.SubtypeRendererTypeHandler.accepts(renderersHandling.kt:117)
    at org.jetbrains.kotlinx.jupyter.codegen.RenderersProcessorImpl.renderResult(RenderersProcessorImpl.kt:20)
    at org.jetbrains.kotlinx.jupyter.ReplForJupyterImpl$evalEx$1$rendered$1$1.invoke(repl.kt:405)
    at org.jetbrains.kotlinx.jupyter.config.LoggingKt.catchAll(logging.kt:41)
    at org.jetbrains.kotlinx.jupyter.config.LoggingKt.catchAll$default(logging.kt:40)
    at org.jetbrains.kotlinx.jupyter.ReplForJupyterImpl$evalEx$1.invoke(repl.kt:404)
    at org.jetbrains.kotlinx.jupyter.ReplForJupyterImpl$evalEx$1.invoke(repl.kt:383)
    at org.jetbrains.kotlinx.jupyter.ReplForJupyterImpl.withEvalContext(repl.kt:347)
    at org.jetbrains.kotlinx.jupyter.ReplForJupyterImpl.evalEx(repl.kt:383)
    at org.jetbrains.kotlinx.jupyter.ReplForJupyterImpl.eval(repl.kt:434)
    at org.jetbrains.kotlinx.jupyter.ProtocolKt$shellMessagesHandler$res$1.invoke(protocol.kt:296)
    at org.jetbrains.kotlinx.jupyter.ProtocolKt$shellMessagesHandler$res$1.invoke(protocol.kt:295)
    at org.jetbrains.kotlinx.jupyter.JupyterConnection$runExecution$execThread$1.invoke(connection.kt:162)
    at org.jetbrains.kotlinx.jupyter.JupyterConnection$runExecution$execThread$1.invoke(connection.kt:160)
    at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
ileasile commented 2 years ago

Fixed in 0.10.0.215