File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
tests/neg-custom-args/captures Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 1+ import language .experimental .captureChecking
2+
3+ trait Cap { def use (): Unit }
4+
5+ def localCap [T ](op : (cap : {* } Cap ) => T ): T = ???
6+
7+ def main (io : {* } Cap , net : {* } Cap ): Unit = {
8+ val test1 = localCap { cap => // error
9+ () => { cap.use() }
10+ }
11+
12+ val test2 : (cap : {* } Cap ) -> {cap} () -> Unit =
13+ localCap { cap => // should work
14+ (cap1 : {* } Cap ) => () => { cap1.use() }
15+ }
16+
17+ val test3 : (cap : {io} Cap ) -> {io} () -> Unit =
18+ localCap { cap => // should work
19+ (cap1 : {io} Cap ) => () => { cap1.use() }
20+ }
21+
22+ val test4 : (cap : {io} Cap ) -> {net} () -> Unit =
23+ localCap { cap => // error
24+ (cap1 : {io} Cap ) => () => { cap1.use() }
25+ }
26+
27+ def localCap2 [T ](op : (cap : {io} Cap ) => T ): T = ???
28+
29+ val test5 : {io} () -> Unit =
30+ localCap2 { cap => // ok
31+ () => { cap.use() }
32+ }
33+ }
You can’t perform that action at this time.
0 commit comments