|
39 | 39 | | ^^^^ |
40 | 40 | | Separation failure: Illegal access to {cap1} which is hidden by the previous definition |
41 | 41 | | of value ref2 with type LazyRef[Int]{val elem: () => Int}^{cap2, ref1}. |
42 | | - | This type hides capabilities {cap1} |
| 42 | + | This type hides capabilities {LazyRef.this.elem, cap1} |
43 | 43 | | |
44 | 44 | | where: => refers to a fresh root capability in the type of value elem |
45 | 45 | -- Error: tests/neg-custom-args/captures/lazyref.scala:26:9 ------------------------------------------------------------ |
46 | 46 | 26 | if cap1 == cap2 // error: separation failure // error: separation failure |
47 | 47 | | ^^^^ |
48 | 48 | | Separation failure: Illegal access to {cap1} which is hidden by the previous definition |
49 | 49 | | of value ref3 with type LazyRef[Int]{val elem: () => Int}^{cap2, ref1}. |
50 | | - | This type hides capabilities {ref2*, cap1} |
| 50 | + | This type hides capabilities {LazyRef.this.elem, ref2*, cap1} |
51 | 51 | | |
52 | 52 | | where: => refers to a fresh root capability in the type of value elem |
53 | 53 | -- Error: tests/neg-custom-args/captures/lazyref.scala:26:17 ----------------------------------------------------------- |
54 | 54 | 26 | if cap1 == cap2 // error: separation failure // error: separation failure |
55 | 55 | | ^^^^ |
56 | 56 | | Separation failure: Illegal access to {cap2} which is hidden by the previous definition |
57 | 57 | | of value ref3 with type LazyRef[Int]{val elem: () => Int}^{cap2, ref1}. |
58 | | - | This type hides capabilities {ref2*, cap1} |
| 58 | + | This type hides capabilities {LazyRef.this.elem, ref2*, cap1} |
59 | 59 | | |
60 | 60 | | where: => refers to a fresh root capability in the type of value elem |
61 | 61 | -- Error: tests/neg-custom-args/captures/lazyref.scala:27:11 ----------------------------------------------------------- |
62 | 62 | 27 | then ref1 // error: separation failure |
63 | 63 | | ^^^^ |
64 | 64 | | Separation failure: Illegal access to {cap1, ref1} which is hidden by the previous definition |
65 | 65 | | of value ref3 with type LazyRef[Int]{val elem: () => Int}^{cap2, ref1}. |
66 | | - | This type hides capabilities {ref2*, cap1} |
| 66 | + | This type hides capabilities {LazyRef.this.elem, ref2*, cap1} |
67 | 67 | | |
68 | 68 | | where: => refers to a fresh root capability in the type of value elem |
69 | 69 | -- Error: tests/neg-custom-args/captures/lazyref.scala:28:11 ----------------------------------------------------------- |
70 | 70 | 28 | else ref2) // error: separation failure |
71 | 71 | | ^^^^ |
72 | 72 | | Separation failure: Illegal access to {cap1, cap2, ref1} which is hidden by the previous definition |
73 | 73 | | of value ref3 with type LazyRef[Int]{val elem: () => Int}^{cap2, ref1}. |
74 | | - | This type hides capabilities {ref2*, cap1} |
| 74 | + | This type hides capabilities {LazyRef.this.elem, ref2*, cap1} |
75 | 75 | | |
76 | 76 | | where: => refers to a fresh root capability in the type of value elem |
77 | 77 | -- Error: tests/neg-custom-args/captures/lazyref.scala:29:9 ------------------------------------------------------------ |
78 | 78 | 29 | .map(g) // error: separation failure |
79 | 79 | | ^ |
80 | 80 | | Separation failure: Illegal access to {cap2} which is hidden by the previous definition |
81 | 81 | | of value ref3 with type LazyRef[Int]{val elem: () => Int}^{cap2, ref1}. |
82 | | - | This type hides capabilities {ref2*, cap1} |
| 82 | + | This type hides capabilities {LazyRef.this.elem, ref2*, cap1} |
83 | 83 | | |
84 | 84 | | where: => refers to a fresh root capability in the type of value elem |
0 commit comments