6

不幸的是,许多 Template Haskell 函数完全没有文档。一个这样的功能是report。它需要 aBool和 a String,并产生一个编译错误,并将指定的字符串作为错误消息。有人知道这到底Bool是为了什么吗?据我所知,任何一个值都做同样的事情......

4

2 回答 2

9

如果BoolTrue,则报错;如果是False,则报告“警告”,这意味着模板代码将继续运行以收集更多“警告”。

于 2012-03-07T11:09:51.643 回答
2

查看源代码,report调用qReport,这是某个类的方法调用Quasi这种方法实际上有一些该死的文档——尽管只有一小段。我引用:

报告错误 ( True) 或警告 ( False) ...但继续;用来fail停止

所以它似乎使我的 TH splice 崩溃并带有适当的错误消息,我只需要调用fail。希望这些信息对其他试图弄清楚这一点的人有用......

于 2012-03-07T11:21:43.800 回答