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
相关产品推荐
相关产品推荐

