我对 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 文件中的包依赖项,那么您也会收到此错误。
解决方法是将其添加到依赖项:)