comparison src/vim9.h @ 31758:85f93e094810 v9.0.1211

patch 9.0.1211: storing value in interface member does not always work Commit: https://github.com/vim/vim/commit/f7d1c6e1884c76680980571f1cf15e0928d247b5 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jan 16 20:47:57 2023 +0000 patch 9.0.1211: storing value in interface member does not always work Problem: Storing value in interface member does not always work. Solution: Convert the index on the interface to the index on the object.
author Bram Moolenaar <Bram@vim.org>
date Mon, 16 Jan 2023 22:00:03 +0100
parents 48431422f766
children 5ce5d78afcc9
comparison
equal deleted inserted replaced
31757:9050141c785f 31758:85f93e094810
76 ISN_STOREENV, // pop into environment variable isn_arg.string 76 ISN_STOREENV, // pop into environment variable isn_arg.string
77 ISN_STOREREG, // pop into register isn_arg.number 77 ISN_STOREREG, // pop into register isn_arg.number
78 // ISN_STOREOTHER, // pop into other script variable isn_arg.other. 78 // ISN_STOREOTHER, // pop into other script variable isn_arg.other.
79 79
80 ISN_STORENR, // store number into local variable isn_arg.storenr.stnr_idx 80 ISN_STORENR, // store number into local variable isn_arg.storenr.stnr_idx
81 ISN_STOREINDEX, // store into list or dictionary, type isn_arg.vartype, 81 ISN_STOREINDEX, // store into list or dictionary, using
82 // value/index/variable on stack 82 // isn_arg.storeindex; value/index/variable on stack
83 ISN_STORERANGE, // store into blob, 83 ISN_STORERANGE, // store into blob,
84 // value/index 1/index 2/variable on stack 84 // value/index 1/index 2/variable on stack
85 85
86 ISN_UNLET, // unlet variable isn_arg.unlet.ul_name 86 ISN_UNLET, // unlet variable isn_arg.unlet.ul_name
87 ISN_UNLETENV, // unlet environment variable isn_arg.unlet.ul_name 87 ISN_UNLETENV, // unlet environment variable isn_arg.unlet.ul_name
484 // arguments to ISN_STORE_CLASSMEMBER, ISN_LOAD_CLASSMEMBER, ISN_GET_ITF_MEMBER 484 // arguments to ISN_STORE_CLASSMEMBER, ISN_LOAD_CLASSMEMBER, ISN_GET_ITF_MEMBER
485 typedef struct { 485 typedef struct {
486 class_T *cm_class; 486 class_T *cm_class;
487 int cm_idx; 487 int cm_idx;
488 } classmember_T; 488 } classmember_T;
489 // arguments to ISN_STOREINDEX
490 typedef struct {
491 vartype_T si_vartype;
492 class_T *si_class;
493 } storeindex_T;
489 494
490 /* 495 /*
491 * Instruction 496 * Instruction
492 */ 497 */
493 struct isn_S { 498 struct isn_S {
538 debug_T debug; 543 debug_T debug;
539 deferins_T defer; 544 deferins_T defer;
540 echowin_T echowin; 545 echowin_T echowin;
541 construct_T construct; 546 construct_T construct;
542 classmember_T classmember; 547 classmember_T classmember;
548 storeindex_T storeindex;
543 } isn_arg; 549 } isn_arg;
544 }; 550 };
545 551
546 /* 552 /*
547 * Info about a function defined with :def. Used in "def_functions". 553 * Info about a function defined with :def. Used in "def_functions".