v2 / vlib / v / tests / structs / struct_fields_required_test.v
32 lines · 27 sloc · 411 bytes · 6488041a749df9762348d019c4223908c476f2e2
Raw
1struct Fns {
2 f1 fn () @[required]
3 f2 fn () @[attr1; required]
4}
5
6fn func() {
7}
8
9fn test_struct_fields_storing_required_functions() {
10 s := Fns{
11 f1: func
12 f2: func
13 }
14
15 assert s.f1 == func
16 assert s.f2 == func
17}
18
19struct Data {
20 v1 int @[required]
21 v2 int @[required]
22}
23
24fn test_required_fields() {
25 data := Data{1, 2}
26 assert data.v1 == 1
27 data2 := Data{
28 ...data
29 v1: 10
30 }
31 assert data.v2 == data2.v2
32}
33