Doug Kearns | 722fbd1 | 2025-03-28 19:36:37 +0100 | [diff] [blame] | 1 | vim9script |
| 2 | |
| 3 | # Vim9 tuples |
| 4 | |
| 5 | |
| 6 | # https://github.com/vim/vim/pull/16935#issuecomment-2738310273 |
| 7 | |
| 8 | function LegacyMakeEntry(key, value) abort |
| 9 | return (a:key, a:value) |
| 10 | endfunction |
| 11 | |
| 12 | def MakeEntry(key: string, value: any): tuple<string, any> |
| 13 | return (key, value) |
| 14 | enddef |
| 15 | |
| 16 | function LegacyMakeLazyList(e1, e2) abort |
| 17 | return ({e1_, e2_ -> {-> [e1_, e2_]}}(a:e1, a:e2)) |
| 18 | endfunction |
| 19 | |
| 20 | def MakeLazyList(e1: any, e2: any): func(): list<any> |
| 21 | return (((e1_: any, e2_: any) => () => [e1_, e2_])(e1, e2)) |
| 22 | enddef |
| 23 | |
| 24 | echo MakeEntry('key', 'value') == list2tuple(MakeLazyList('key', 'value')()) |
| 25 | echo LegacyMakeEntry('key', 'value') == list2tuple(LegacyMakeLazyList('key', 'value')()) |
| 26 | |