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