Haskell 与GHC进行博士测试<;8.0:“;阶段“C”预处理器';“失败”;加上;令牌“之前缺少二进制运算符”;("",;

Haskell 与GHC进行博士测试<;8.0:“;阶段“C”预处理器';“失败”;加上;令牌“之前缺少二进制运算符”;("",;,haskell,c-preprocessor,ghc,doctest,Haskell,C Preprocessor,Ghc,Doctest,我对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

我对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

编辑:我收集到的信息是
MIN\u版本
宏最初由cabal定义,但自v8.0以来由GHC自己生成。cabal v2.2似乎仍然为GHC<8.0生成宏,因此例如
新版本
可以工作,但doctest绕过了cabal


有人能推荐一个好的解决方法吗?

因为doctest主要用于确保您的文档注释与代码库同步,所以我只想在您的cabal文件中添加一个标志,允许您对较旧的版本禁用doctest。例如,我这样做。