@@ -29,22 +29,40 @@ object overloaded {
29
29
val r2 = map(x => x.toInt)
30
30
val t2 : Seq [Int ] = r2
31
31
32
+ val rp1 = map { case x => x.toUpper }
33
+ val tp1 : String = rp1
34
+ val rp2 = map { case x => x.toInt }
35
+ val tp2 : Seq [Int ] = rp2
36
+
32
37
def flatMap (f : Char => String ): String = ???
33
38
def flatMap [U ](f : Char => Seq [U ]): Seq [U ] = ???
34
39
val r3 = flatMap(x => x.toString)
35
40
val t3 : String = r3
36
41
val r4 = flatMap(x => List (x))
37
42
val t4 : Seq [Char ] = r4
38
43
44
+ val rp3 = flatMap { case x => x.toString }
45
+ val tp3 : String = rp3
46
+ val rp4 = flatMap { case x => List (x) }
47
+ val tp4 : Seq [Char ] = rp4
48
+
39
49
def bar (f : (Char , Char ) => Unit ): Unit = ???
40
50
def bar (f : Char => Unit ) = ???
41
51
bar((x, y) => ())
42
52
bar (x => ())
53
+ // bar { case (x, y) => () } // error: cannot test if value types are references
54
+ bar { case x => () }
43
55
44
56
def combine (f : (Char , Int ) => Int ): Int = ???
45
57
def combine (f : (String , Int ) => String ): String = ???
46
58
val r5 = combine((x : Char , y) => x + y)
47
59
val t5 : Int = r5
48
60
val r6 = combine((x : String , y) => x ++ y.toString)
49
61
val t6 : String = r6
62
+
63
+ // Errors: The argument types of an anonymous function must be fully known
64
+ // val rp5 = combine { case (x: Char, y) => x + y }
65
+ // val tp5: Int = rp5
66
+ // val rp6 = combine { case (x: String, y) => x ++ y.toString }
67
+ // val tp6: String = rp6
50
68
}
0 commit comments