vxx2 / vlib / v / checker / tests / nocopy_struct_err.vv
34 lines · 30 sloc · 424 bytes · a7fef7c4930a3443b41f2a53c855839df4cccea6
Raw
1@[nocopy]
2struct Resource {
3 handle int
4}
5
6const base_resource = Resource{
7 handle: 1
8}
9
10struct Holder {
11 field Resource = base_resource
12}
13
14fn takes_value(res Resource) {
15 _ = res
16}
17
18fn main() {
19 mut resource := Resource{
20 handle: 2
21 }
22 dup := resource
23 takes_value(resource)
24 _ = Holder{
25 field: resource
26 }
27 _ = fn [resource] () {
28 _ = resource.handle
29 }
30 _ = fn [mut resource] () {
31 _ = resource.handle
32 }
33 _ = dup
34}
35