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.
The Conversion
class can also be used to convert explicitly, using the convert
extension method.
Attributes
- Companion
- object
- Source
- Conversion.scala
- Graph
-
- Supertypes
Members list
Value members
Abstract methods
Convert value x
of type T
to type U
Inherited methods
Composes two instances of Function1
in a new Function1
, with this function applied first.
Composes two instances of Function1
in a new Function1
, with this function applied first.
Type parameters
- A
-
the result type of function
g
Value parameters
- g
-
a function R => A
Attributes
- Returns
-
a new function
f
such thatf(x) == g(apply(x))
- Inherited from:
- Function1
- Source
- Function1.scala
Composes two instances of Function1
in a new Function1
, with this function applied last.
Composes two instances of Function1
in a new Function1
, with this function applied last.
Type parameters
- A
-
the type to which function
g
can be applied
Value parameters
- g
-
a function A => T1
Attributes
- Returns
-
a new function
f
such thatf(x) == apply(g(x))
- Inherited from:
- Function1
- Source
- Function1.scala
Returns a string representation of the object.
Returns a string representation of the object.
The default representation is platform dependent.
Attributes
- Returns
-
a string representation of the object.
- Definition Classes
- Inherited from:
- Function1
- Source
- Function1.scala
Extensions
Extensions
x.convert
converts a value x
of type T
to type U