| 1 | struct Fns { |
| 2 | f1 fn () @[required] |
| 3 | f2 fn () @[attr1; required] |
| 4 | } |
| 5 | |
| 6 | fn func() { |
| 7 | } |
| 8 | |
| 9 | fn 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 | |
| 19 | struct Data { |
| 20 | v1 int @[required] |
| 21 | v2 int @[required] |
| 22 | } |
| 23 | |
| 24 | fn 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 |