在 Scala 中继承 implicitNotFound 消息
Inheriting implicitNotFound messages in Scala
在 Scala 中,多亏了 annotation.implicitNotFound
注解,我们可以在找不到隐式时自定义编译器的错误消息。
派生 类 有没有办法以某种方式继承此 implicitNotFound
错误消息?即,像这样:
scala> import annotation.implicitNotFound
import annotation.implicitNotFound
scala> @implicitNotFound("custom message") trait Base[T]
defined trait Base
scala> trait Derived[T] extends Base[T]
defined trait Derived
scala> implicitly[Base[Int]]
<console>:13: error: custom message
implicitly[Base[Int]] // my message above, cool
^
scala> implicitly[Derived[Int]]
<console>:14: error: could not find implicit value for parameter e: Derived[Int]
implicitly[Derived[Int]] // not my message
简单回答:看起来这不是受支持的功能。
在 Scala 中,多亏了 annotation.implicitNotFound
注解,我们可以在找不到隐式时自定义编译器的错误消息。
派生 类 有没有办法以某种方式继承此 implicitNotFound
错误消息?即,像这样:
scala> import annotation.implicitNotFound
import annotation.implicitNotFound
scala> @implicitNotFound("custom message") trait Base[T]
defined trait Base
scala> trait Derived[T] extends Base[T]
defined trait Derived
scala> implicitly[Base[Int]]
<console>:13: error: custom message
implicitly[Base[Int]] // my message above, cool
^
scala> implicitly[Derived[Int]]
<console>:14: error: could not find implicit value for parameter e: Derived[Int]
implicitly[Derived[Int]] // not my message
简单回答:看起来这不是受支持的功能。