Mercurial > vim
comparison src/vim9.h @ 22975:a943b175586a v8.2.2034
patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Commit: https://github.com/vim/vim/commit/792f786aad8409ca9ab895392742643a5b6aed8f
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Nov 23 08:31:18 2020 +0100
patch 8.2.2034: Vim9: list unpack in for statement not compiled yet
Problem: Vim9: list unpack in for statement not compiled yet.
Solution: Compile list unpack. (closes https://github.com/vim/vim/issues/7345)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 23 Nov 2020 08:45:04 +0100 |
parents | 4c97c0747017 |
children | 6aa8ddf7a3fa |
comparison
equal
deleted
inserted
replaced
22974:3f8025537dd9 | 22975:a943b175586a |
---|---|
144 ISN_PUT, // ":put", uses isn_arg.put | 144 ISN_PUT, // ":put", uses isn_arg.put |
145 | 145 |
146 ISN_CMDMOD, // set cmdmod | 146 ISN_CMDMOD, // set cmdmod |
147 ISN_CMDMOD_REV, // undo ISN_CMDMOD | 147 ISN_CMDMOD_REV, // undo ISN_CMDMOD |
148 | 148 |
149 ISN_UNPACK, // unpack list into items, uses isn_arg.unpack | |
149 ISN_SHUFFLE, // move item on stack up or down | 150 ISN_SHUFFLE, // move item on stack up or down |
150 ISN_DROP // pop stack and discard value | 151 ISN_DROP // pop stack and discard value |
151 } isntype_T; | 152 } isntype_T; |
152 | 153 |
153 | 154 |
281 | 282 |
282 // arguments to ISN_CMDMOD | 283 // arguments to ISN_CMDMOD |
283 typedef struct { | 284 typedef struct { |
284 cmdmod_T *cf_cmdmod; // allocated | 285 cmdmod_T *cf_cmdmod; // allocated |
285 } cmod_T; | 286 } cmod_T; |
287 | |
288 // arguments to ISN_UNPACK | |
289 typedef struct { | |
290 int unp_count; // number of items to produce | |
291 int unp_semicolon; // last item gets list of remainder | |
292 } unpack_T; | |
286 | 293 |
287 /* | 294 /* |
288 * Instruction | 295 * Instruction |
289 */ | 296 */ |
290 struct isn_S { | 297 struct isn_S { |
319 newfunc_T newfunc; | 326 newfunc_T newfunc; |
320 checklen_T checklen; | 327 checklen_T checklen; |
321 shuffle_T shuffle; | 328 shuffle_T shuffle; |
322 put_T put; | 329 put_T put; |
323 cmod_T cmdmod; | 330 cmod_T cmdmod; |
331 unpack_T unpack; | |
324 } isn_arg; | 332 } isn_arg; |
325 }; | 333 }; |
326 | 334 |
327 /* | 335 /* |
328 * Info about a function defined with :def. Used in "def_functions". | 336 * Info about a function defined with :def. Used in "def_functions". |