6

残念ながら、多くの Template Haskell 関数にはまったくドキュメントがありません。そのような機能の 1 つがreport. Boolとを取りString、指定された文字列をエラー メッセージとしてコンパイル エラーを生成します。一体何のためにあるのか、誰にも手がかりがありBoolますか? 私が知る限り、どちらの値もまったく同じことを行います...

4

2 に答える 2

9

Boolがの場合、Trueエラーが報告されます。である場合False、「警告」が報告されます。つまり、テンプレート コードは引き続き実行され、さらに「警告」が収集されます。

于 2012-03-07T11:09:51.643 に答える
2

ソース コードを見ると、という名前のクラスのメソッドである が呼び出されreportます。このメソッドには、実際にはいくつかのひどいドキュメントがありますが、ごくわずかなスニペットに過ぎません。私は引用します:qReportQuasi

Trueエラー ( ) または警告 ( ) を報告しますFalse...しかし続行します。停止するために使用failします

そのため、適切なエラー メッセージで TH スプライスがクラッシュするようfailです。代わりに電話する必要があります。この情報が、それを理解しようとしている他の人に役立つことを願っています...

于 2012-03-07T11:21:43.800 に答える