黑线鳕:无法创建依赖关系图(添加带有 * 或模块标题的部分时)
题
我从 tarball 源编译并安装了 haddock-2.4.2。
在此处的代码中添加一些简单的注释:
和奔跑的黑线鳕
$ haddock -h -o doc Data/DualMap.hs
Warning: Data.DualMap: could not find link destinations for:
Data.Typeable.Typeable2 GHC.Base.Eq GHC.Show.Show GHC.Base.Ord GHC.Base.Bool Data.Set.Set
产量:
事情看起来不错。(请注意,此模块仅依赖于 GHC 附带的库,而不依赖于其他源模块。)
但是,当我尝试添加部分时(la http://www.haskell.org/haddock/doc/html/ch03s04.html#id289234 )在带有“--*测试”的评论中我得到:
$ haddock -h -o doc Data/DualMap.hs
Data/DualMap.hs:20:0: parse error on input `-- * test'
haddock: Failed to create dependency graph
我不知道从哪里开始让它工作,因为这个错误消息只告诉我 Haddock.Interface.depanal 没有返回任何内容(根据 haddock 源的 grep),但不告诉我如何阻止依赖性分析失败。也许我需要更多的命令行参数或对 GHC/base/containers 文档或某些 haddock 配置文件中缺少的链接目标的引用?
在 Google 上搜索后,发现了大量与 hackage 上的软件包类似的阴谋集团构建错误,但没有提及如何修复它们。
如何添加部分(带星号)并让 Haddock 生成我的文档?我错过了什么(可能很简单)?
解决方案
简单修复(可怕的错误消息):
将 ( 移至包含模块名称的行。以前的错误代码:
module Data.DualMap
-- * The @DualMap@ abstract type
( DualMap ()
-- * (?) internal? -- exposed for testing purposes, for now...
, dmFlip
-- * converting to and from DualMap
, toList, fromList, map
-- * constructing a DualMap
, empty, null, insert, union
快乐的代码如下所示:
module Data.DualMap (
-- * The @DualMap@ abstract type
DualMap ()
-- * (?) internal? -- exposed for testing purposes, for now...
, dmFlip
-- * converting to and from DualMap
, toList, fromList, map
-- * constructing a DualMap
, empty, null, insert, union
够简单的。我通过下载发现了这个 来自 hacakge 的 DList 并将其删除并用我自己的代码替换代码。当 DList 使用“cabal haddock”而我的不使用时(当我尝试添加一些星号时),我查看了文件之间的差异,果然我的括号位于错误的行上。
顺便说一句,我强烈推荐 DList 作为新 Haskell 项目的起点,而不是 赫诺普.
不隶属于 StackOverflow