|
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