All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scala.Conversion.scala Maven / Gradle / Ivy

The newest version!
package scala

/** A class for implicit values that can serve as implicit conversions
*  The implicit resolution algorithm will act as if there existed
*  the additional implicit definition:
*
*    def $implicitConversion[T, U](x: T)(c: Conversion[T, U]): U = c(x)
*
*  However, the presence of this definition would slow down implicit search since
*  its outermost type matches any pair of types. Therefore, implicit search
*  contains a special case in `Implicits#discardForView` which emulates the
*  conversion in a more efficient way.
*
*  Note that this is a SAM class - function literals are automatically converted
*  to the `Conversion` values.
*
*  Also note that in bootstrapped dotty, `Predef.<:<` should inherit from
*  `Conversion`. This would cut the number of special cases in `discardForView`
*  from two to one.
*/
@java.lang.FunctionalInterface
abstract class Conversion[-T, +U] extends Function1[T, U]:
  def apply(x: T): U




© 2015 - 2025 Weber Informatics LLC | Privacy Policy