| 1 | struct Gen[T] { |
| 2 | data T |
| 3 | } |
| 4 | |
| 5 | fn (g Gen[T]) process() string { |
| 6 | th := spawn g.internal() |
| 7 | r := th.wait() |
| 8 | return r |
| 9 | } |
| 10 | |
| 11 | fn (g Gen[T]) internal() string { |
| 12 | println(g.data * g.data) |
| 13 | return '${g.data * g.data}' |
| 14 | } |
| 15 | |
| 16 | fn test_spawn_method_on_generic_struct() { |
| 17 | g := Gen[int]{ |
| 18 | data: 5 |
| 19 | } |
| 20 | r1 := g.process() |
| 21 | assert r1 == '25' |
| 22 | |
| 23 | r2 := g.internal() |
| 24 | assert r2 == '25' |
| 25 | } |
| 26 |