|
1 | 1 | -- [E007] Type Mismatch Error: tests/neg-custom-args/captures/i16226.scala:13:4 ----------------------------------------
|
2 | 2 | 13 | (ref1, f1) => map[A, B](ref1, f1) // error
|
3 | 3 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
4 |
| - |Found: (ref1: LazyRef[A^?]{val elem: () => A^?}^{io}, f1: A^? => B^?) ->? LazyRef[B^?]{val elem: () =>² B^?}^{f1, ref1} |
5 |
| - |Required: (LazyRef[A]^{io}, A => B) =>³ LazyRef[B]^ |
| 4 | + |Found: (ref1: LazyRef[A^?]{val elem: () ->? A^?}^?, f1: A^? ->? B^?) ->? LazyRef[B^?]{val elem: () => B^?}^{f1, ref1} |
| 5 | + |Required: (LazyRef[A]^{io}, A =>² B) =>³ LazyRef[B]^ |
6 | 6 | |
|
7 |
| - |where: => refers to the universal root capability |
8 |
| - | =>² refers to a root capability associated with the result type of (ref1: LazyRef[A^?]{val elem: () => A^?}^{io}, f1: A^? => B^?): LazyRef[B^?]{val elem: () =>² B^?}^{f1, ref1} |
| 7 | + |where: => refers to a root capability associated with the result type of (ref1: LazyRef[A^?]{val elem: () ->? A^?}^?, f1: A^? ->? B^?): LazyRef[B^?]{val elem: () => B^?}^{f1, ref1} |
| 8 | + | =>² refers to the universal root capability |
9 | 9 | | =>³ refers to a fresh root capability in the result type of method mapc
|
10 | 10 | | ^ refers to a fresh root capability in the result type of method mapc
|
11 | 11 | |
|
12 | 12 | | longer explanation available when compiling with `-explain`
|
13 | 13 | -- [E007] Type Mismatch Error: tests/neg-custom-args/captures/i16226.scala:15:4 ----------------------------------------
|
14 | 14 | 15 | (ref1, f1) => map[A, B](ref1, f1) // error
|
15 | 15 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
16 |
| - |Found: (ref1: LazyRef[A^?]{val elem: () => A^?}^{io}, f1: A^? => B^?) ->? LazyRef[B^?]{val elem: () =>² B^?}^{f1, ref1} |
17 |
| - |Required: (ref: LazyRef[A]^{io}, f: A => B) =>³ LazyRef[B]^ |
| 16 | + |Found: (ref1: LazyRef[A^?]{val elem: () ->? A^?}^?, f1: A^? ->? B^?) ->? LazyRef[B^?]{val elem: () => B^?}^{f1, ref1} |
| 17 | + |Required: (ref: LazyRef[A]^{io}, f: A =>² B) =>³ LazyRef[B]^ |
18 | 18 | |
|
19 |
| - |where: => refers to the universal root capability |
20 |
| - | =>² refers to a root capability associated with the result type of (ref1: LazyRef[A^?]{val elem: () => A^?}^{io}, f1: A^? => B^?): LazyRef[B^?]{val elem: () =>² B^?}^{f1, ref1} |
| 19 | + |where: => refers to a root capability associated with the result type of (ref1: LazyRef[A^?]{val elem: () ->? A^?}^?, f1: A^? ->? B^?): LazyRef[B^?]{val elem: () => B^?}^{f1, ref1} |
| 20 | + | =>² refers to the universal root capability |
21 | 21 | | =>³ refers to a fresh root capability in the result type of method mapd
|
22 |
| - | ^ refers to a root capability associated with the result type of (ref: LazyRef[A]^{io}, f: A => B): LazyRef[B]^ |
| 22 | + | ^ refers to a root capability associated with the result type of (ref: LazyRef[A]^{io}, f: A =>² B): LazyRef[B]^ |
23 | 23 | |
|
24 | 24 | |Note that the existential capture root in LazyRef[B]^
|
25 | 25 | |cannot subsume the capability f1.type since that capability is not a SharedCapability
|
|
0 commit comments