gpt4 book ai didi

haskell - 使用 GHC < 8.0 : "phase ` C pre-processor' failed"with "missing binary operator before token " ("" 的 Doctest

转载 作者:行者123 更新时间:2023-12-05 05:17:18 30 4
gpt4 key购买 nike

我对我在 GHC-7.10.3 及更早版本上的 doctests 失败感到困惑。完整的错误信息是

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_ 宏最初是由 cabal 定义的,但从 v8.0 开始由 GHC 自己生成。看起来 cabal v2.2 仍然为 GHC < 8.0 生成宏,例如new-build 有效,但 doctest 绕过 cabal。

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

最佳答案

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

修复方法是将其添加到依赖项中:)

关于haskell - 使用 GHC < 8.0 : "phase ` C pre-processor' failed"with "missing binary operator before token " ("" 的 Doctest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49431519/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com