由于某些错误的输入,Template Haskell函数正在生成损坏的代码。如何在Yesod中仅将-ddump-splices
应用于一个文件?
我知道解决输入错误是解决方案,但是调试取决于模板Haskell生成的内容,我在正常运行的错误输出中看不到
stack exec -- yesod devel
我认为staticFiles
中的函数src/Settings/StaticFiles.hs
必须是Template Haskell函数。我以为我会研究由此产生的结果,但是我意识到自己已经超出了深度,天真地尝试stack exec --ghc-options='-ddump-splices' -- yesod devel
无效。
如何在Yesod中仅将-ddump-splices应用于一个文件?
非常欢迎其他有关调试Yesod / Template Haskell的高级评论。
答案 0 :(得分:1)
您可以在要渲染接头的Haskell文件中添加一个编译指示。喜欢:
{-# OPTIONS_GHC -ddump-splices #-}
{-# LANGUAGE TemplateHaskell #-}
import SomeModule(someTHFunction)
foo = $(someTHFunction 14 25)
当我在本地测试时,它只会将模板Haskell的切片转储到添加了该编译指示的文件中,因此您可以将其添加到对模板Haskell实现感兴趣的文件中,而忽略其他文件