aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/pos_valueclasses/t6260.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pos/pos_valueclasses/t6260.scala')
-rw-r--r--tests/pos/pos_valueclasses/t6260.scala19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/pos/pos_valueclasses/t6260.scala b/tests/pos/pos_valueclasses/t6260.scala
new file mode 100644
index 000000000..675c3c16a
--- /dev/null
+++ b/tests/pos/pos_valueclasses/t6260.scala
@@ -0,0 +1,19 @@
+package t6260
+
+class Box[X](val x: X) extends AnyVal {
+ def map[Y](f: X => Y): Box[Y] =
+ ((bx: Box[X]) => new Box(f(bx.x)))(this)
+}
+
+object Test {
+ def map2[X, Y](self: Box[X], f: X => Y): Box[Y] =
+ ((bx: Box[X]) => new Box(f(bx.x)))(self)
+
+ def main(args: Array[String]): Unit = {
+ val f = (x: Int) => x + 1
+ val g = (x: String) => x + x
+
+ map2(new Box(42), f)
+ new Box("abc") map g
+ }
+}