你如何调试类型级代码?

时间:2016-01-12 21:00:35

标签: scala shapeless type-level-computation

大多数情况下,你得到的是一个隐含的未找到错误。你不知道它失败的隐式构造链中的哪个位置。显然你不能使用运行时调试或打印语句。那么除了盯着你的代码之外,你如何调试类型级程序呢?

2 个答案:

答案 0 :(得分:3)

我希望我有一个更好的答案,但在这里:它开始明确地传递参数,一次一个,直到它给你一个更有用的错误。 (为implicits params添加-prinin-equivalent-equivalent)

答案 1 :(得分:0)

您可以将???用于未定义的代码部分(因为它的底部类型为Nothing),_用于未知的类型。另请参见-Ytyper-debug编译器选项(此处有更多选项:https://docs.scala-lang.org/overviews/compiler-options/index.html)。根据隐式参数和包装的问题,“ Idea”具有不错的功能“显示隐式提示”和“隐式参数”(Main menu > Help > Find Action...,并键入例如 implicit )。此外,您可以将Null底部类型实例null用于AnyRef,例如null: YourTypeHere