可以对scala dsl进行编码以发出自己的专用编译错误吗?

时间:2014-10-10 17:45:18

标签: scala dsl

我使用了一些Scala DSL,并且想知道是否开发一个,也可以满足特定于DSL的编译错误。这个想法是一个特定于域的语言也会有特定于域的编译错误消息,帮助领域专家把事情做好。这可能在Scala中吗?

1 个答案:

答案 0 :(得分:4)

可能有用的一件事是annotation.implicitNotFound。您可以使用它帮助自定义未解决的隐含的编译器错误。

正如@Dylan指出的那样,如果您使用宏you can use c.abortc.infoc.error攻击Scala,以使编译器产生一些自定义错误/额外资讯

在这种情况下,annotation.compileTimeOnly也可能会有所帮助。它允许限制代码某些部分的使用,并在有人试图访问时生成自定义错误消息。