使用 GHC < 8.0 进行文档测试:使用 "missing binary operator before token " 进行"phase `C pre-processor' failed



我对 GHC-7.10.3 及更早版本的文档测试失败感到困惑。完整的错误消息是

Data/ByteString/Builder/HTTP/Chunked.hs:75:0:
error: missing binary operator before token "("
#if MIN_VERSION_base(4,8,0)
^
doctests: doctests: phase `C pre-processor' failed (exitcode = 1)

在GHC>= 8.0的情况下,测试按预期工作。在所有情况下,我都在使用doctest-0.15.0.

编辑:我从 https://ghc.haskell.org/trac/ghc/ticket/10970 收集到的是,MIN_VERSION_宏最初是由阴谋集团定义的,但自v8.0以来由GHC本身生成。看来阴谋集团 v2.2 仍然为 GHC <8.0 生成宏,例如new-build有效,但最能绕过阴谋集团。

有人可以建议一个好的解决方法吗?

对于那些受到此打击的人:错误的另一个原因是,如果您在代码中说#if MIN_VERSION_template_haskell(1,2,3),但忘记将 template-haskell 添加到 .cabal 文件中的包依赖项,那么您也会收到此错误。

解决方法是将其添加到依赖项:)

相关内容

  • 没有找到相关文章

最新更新