| 1 | struct Test[T] { |
| 2 | mut: |
| 3 | val T |
| 4 | } |
| 5 | |
| 6 | fn (mut t Test[T]) set_val(val T) { |
| 7 | t.val = val |
| 8 | } |
| 9 | |
| 10 | fn process[T](mut t Test[T]) int { |
| 11 | t.set_val('qqq') |
| 12 | anon := fn [t] [T]() int { |
| 13 | println(t) |
| 14 | return 1 |
| 15 | } |
| 16 | return anon() |
| 17 | } |
| 18 | |
| 19 | fn test_generic_closure_with_generic_capture_can_be_assigned_to_local_variable() { |
| 20 | mut t := Test[string]{} |
| 21 | assert process(mut t) == 1 |
| 22 | assert t.val == 'qqq' |
| 23 | } |
| 24 |