Skip to content

Commit bc5c09b

Browse files
committed
Add Conversion.into method
1 parent c4dea7b commit bc5c09b

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

library/src/scala/Conversion.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@ package scala
2121
@java.lang.FunctionalInterface
2222
abstract class Conversion[-T, +U] extends Function1[T, U]:
2323
def apply(x: T): U
24+
object Conversion:
25+
extension [T](x: T)
26+
def into[U](using c: Conversion[T, U]) = c(x)

tests/pos/conversion-into.scala

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import Conversion.into
2+
3+
given Conversion[String, Int] = _.length
4+
given Conversion[Int, String] = _.toString
5+
6+
def f(x: String): Int = x.into
7+
def g(x: Int): String = x.into[String]

0 commit comments

Comments
 (0)