我正在尝试使用quickcheck为我编写的一个简单词法分析器编写测试。但是,我似乎因某种链接错误而犯规
我正在使用cabal-dev进行构建
我的.cabal文件正在构建一个库“ mylib”。库部分的公开模块部分为Lexical.Token,测试套件下的build_depends下为“ mylib”,其他模块下也为Lexical.token。
我想念什么?我从ghc(7.4.1)中得到的错误如下:
Couldn't match expected type `Token'
with actual type `mylib-0.0.0.1:Lexical.Token.Token'
Expected type: [Token]
Actual type: [mylib-0.0.0.1:Lexical.Token.Token]
Cabal在“ Lexical.Token”模块的两个位置上发生冲突。令人困惑的是,它们都是同一个文件。
mylib-0.0.0.1
从您的解析build-depends
为的“本地安装和注册”版本mylib
。Lexical.Token
在源代码中作为一项other-modules
条目进行解析,某些内容应通过您的测试套件公开。修复它被移除Lexical.Token
从other-modules
,我想。测试套件不应与测试代码共享代码,而应将所有模块导入,就好像您的测试代码是外部库一样。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句