你好,Ladislav
这个问题与 cljs 或 test.check 没有直接关系
它与 go
宏有关
go
宏会重写其主体
您可以在您的 repl 中运行 (macroexpand '(go 1))
来查看它。
即使是像 1
这样简单的形式,也会变成一个更复杂的形式,包含了大量的“状态机”和其他内容。
1
结果会生成一个 ~2k 个字符长的形式
更复杂的变化,比如 (go (inc (<! (go 1))))
,会变成 ~4k 个字符
并且它还会不断增长。
在某些情况下,这种“展开的 go 代码”增长太多,导致栈溢出或其他奇怪的 分析器错误。
在您的情况下,测试
/ is
宏会扩展成大量代码,所以您很快就会有一个“太长”的格式。