| 1 | module main |
| 2 | |
| 3 | fn func(arg ?string, val &int) ?int { |
| 4 | unsafe { |
| 5 | *val = 2 |
| 6 | } |
| 7 | return 2 |
| 8 | } |
| 9 | |
| 10 | fn test_main() { |
| 11 | map1 := { |
| 12 | 'json': func |
| 13 | } |
| 14 | assert typeof(map1['json']).name == 'fn (?string, int) ?int' |
| 15 | |
| 16 | number := 0 |
| 17 | ret := map1['json']('hi', &number) |
| 18 | assert number == ret? |
| 19 | assert ret? == 2 |
| 20 | |
| 21 | mut map2 := map[string]fn (?string, &int) ?int{} |
| 22 | map2['json'] = func |
| 23 | assert typeof(map2['json']).name == 'fn (?string, int) ?int' |
| 24 | |
| 25 | number2 := 0 |
| 26 | ret2 := map2['json']('', &number2) |
| 27 | assert number2 == ret2? |
| 28 | assert ret2? == 2 |
| 29 | } |
| 30 | |