@@ -48,3 +48,58 @@ longer explanation available when compiling with `-explain`
48
48
| case EmptyTuple => EmptyTuple
49
49
50
50
longer explanation available when compiling with `-explain`
51
+ -- Error: tests/neg/i12049.scala:24:20 ---------------------------------------------------------------------------------
52
+ 24 |val _ = summon[M[B]] // error
53
+ | ^
54
+ | no implicit argument of type M[B] was found for parameter x of method summon in object Predef
55
+ |
56
+ | Note: a match type could not be fully reduced:
57
+ |
58
+ | trying to reduce M[B]
59
+ | failed since selector B
60
+ | does not match case A => Int
61
+ | and cannot be shown to be disjoint from it either.
62
+ | Therefore, reduction cannot advance to the remaining case
63
+ |
64
+ | case B => String
65
+ -- Error: tests/neg/i12049.scala:25:78 ---------------------------------------------------------------------------------
66
+ 25 |val _ = summon[String =:= Last[Int *: Int *: Boolean *: String *: EmptyTuple]] // error
67
+ | ^
68
+ | Cannot prove that String =:= Last[EmptyTuple.type].
69
+ |
70
+ | Note: a match type could not be fully reduced:
71
+ |
72
+ | trying to reduce Last[EmptyTuple.type]
73
+ | failed since selector EmptyTuple.type
74
+ | matches none of the cases
75
+ |
76
+ | case _ *: _ *: t => Last[t]
77
+ | case t *: EmptyTuple => t
78
+ -- Error: tests/neg/i12049.scala:26:48 ---------------------------------------------------------------------------------
79
+ 26 |val _ = summon[(A, B, A) =:= Reverse[(A, B, A)]] // error
80
+ | ^
81
+ | Cannot prove that (A, B, A) =:= Tuple.Concat[Reverse[A *: EmptyTuple.type], (B, A)].
82
+ |
83
+ | Note: a match type could not be fully reduced:
84
+ |
85
+ | trying to reduce Tuple.Concat[Reverse[A *: EmptyTuple.type], (B, A)]
86
+ | trying to reduce Reverse[A *: EmptyTuple.type]
87
+ | failed since selector A *: EmptyTuple.type
88
+ | matches none of the cases
89
+ |
90
+ | case t1 *: t2 *: ts => Tuple.Concat[Reverse[ts], (t2, t1)]
91
+ | case EmptyTuple => EmptyTuple
92
+ -- [E008] Not Found Error: tests/neg/i12049.scala:28:21 ----------------------------------------------------------------
93
+ 28 |val _ = (??? : M[B]).length // error
94
+ | ^^^^^^^^^^^^^^^^^^^
95
+ | value length is not a member of M[B]
96
+ |
97
+ | Note: a match type could not be fully reduced:
98
+ |
99
+ | trying to reduce M[B]
100
+ | failed since selector B
101
+ | does not match case A => Int
102
+ | and cannot be shown to be disjoint from it either.
103
+ | Therefore, reduction cannot advance to the remaining case
104
+ |
105
+ | case B => String
0 commit comments