您好,Ladislav
此问题与 cljs 或 test.check 无直接关系
它与 go
宏有关
go
宏会重写其主体
您可以在您的 repl 中运行 (macroexpand '(go 1))
以查看它。
即使是像 1
这样简单的形式,也会变成一个更大的形式,包含大量的“状态机”和其他内容。
1
会转化为约 2k 字符长的形式
更复杂一些,如 (go (inc (<! (go 1))))
,会变成约 4k 字符
它还会继续增长。
在某些情况下,这种“扩展的 go 代码”增长过多,导致 StackOverflow 或其他奇怪的 analyzer 错误
在这种情况下,您的 testing
/ is
宏会扩展成一个大代码,因此您会很快遇到“太长”的形式。