You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nim中返回值为void的lambda致编译器崩溃,是否需提交反馈?

Nim 1.6.16编译void返回值lambda触发内部错误的问题

出错的最小复现代码

import sugar

type TestLambda = () -> void
type NamedTestLambda = tuple[name: string, lambda: TestLambda]

var testNil: TestLambda = () => void

var funcs: seq[NamedTestLambda] = @[
    (name: "nil", lambda: testNil),
]

编译时触发的内部错误

Error: internal error: getTypeDescAux(tyVoid)
No stack traceback available
To create a stacktrace, rerun compilation with './koch temp c <file>', see https://nim-lang.github.io/Nim/intern.html#debugging-the-compiler for details
     Error: Build failed for package: nim_snake
        ... Execution failed with exit code 256

可正常编译的对比代码

将lambda返回类型改为int后,代码可正常编译:

import sugar

type TestLambda = () -> int
type NamedTestLambda = tuple[name: string, lambda: TestLambda]

var testNil: TestLambda = () => 1

var funcs: seq[NamedTestLambda] = @[
    (name: "nil", lambda: testNil),
]

结论

这不是你的代码问题,是Nim编译器1.6.16版本的内部错误,应该向Nim官方提交问题反馈。

内容的提问来源于stack exchange,提问作者Nino van Hooff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 05:07:18