implicitAmbiguous
scala.annotation.implicitAmbiguous
final class implicitAmbiguous(msg: String) extends ConstantAnnotation
To customize the error message that's emitted when an implicit search finds multiple ambiguous values, annotate at least one of the implicit values @implicitAmbiguous
. Assuming the implicit value is a method with type parameters X1,..., XN
, the error message will be the result of replacing all occurrences of ${Xi}
in the string msg
with the string representation of the corresponding type argument Ti
.
If more than one @implicitAmbiguous
annotation is collected, the compiler is free to pick any of them to display.
Nice errors can direct users to fix imports or even tell them why code intentionally doesn't compile.
trait =!=[C, D]
implicit def neq[E, F] : E =!= F = null
@annotation.implicitAmbiguous("Could not prove ${J} =!= ${J}")
implicit def neqAmbig1[G, H, J] : J =!= J = null
implicit def neqAmbig2[I] : I =!= I = null
implicitly[Int =!= Int]
Attributes
- Source
- implicitAmbiguous.scala
- Graph
-
- Supertypes
-
trait ConstantAnnotationtrait StaticAnnotationclass Annotationclass Objecttrait Matchableclass Any
In this article