2013-07-05 28 views
0

我正在尝试使用quickcheck为我写的简单词法分析器编写测试。 不过,我似乎在下降某种链接错误的犯规将测试套件链接到库时出错

我用小集团建设-dev的

我.cabal文件建立一个库“MYLIB” 库部分已根据其暴露模块部分Lexical.Token和测试套件下我有“mylib”列在build_depends下,并且我还列出了其他模块下的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] 

回答

1

Cabal在“Lexical.Token”模块的两个位置发生冲突。令人困惑的是,它们都是同一个文件。

  1. 它解决mylib-0.0.0.1build-dependsmylib的“本地安装并注册”版本。
  2. 它在源代码中解析Lexical.Token作为other-modules条目,应该是通过您的测试套件暴露

修复它删除Lexical.Tokenother-modules,我想象。您的测试套件不应该与您的测试代码共享代码,而是将所有模块导入,就好像您的测试代码是外部库。