Mercurial > vim
diff src/structs.h @ 31843:ffa11e2757e7 v9.0.1254
patch 9.0.1254: calling a method on an interface does not work
Commit: https://github.com/vim/vim/commit/d0200c8631582bbb16a9b585e2ca7adccc84ccdd
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jan 28 15:19:40 2023 +0000
patch 9.0.1254: calling a method on an interface does not work
Problem: Calling a method on an interface does not work.
Solution: At runtime figure out what method to call. (closes https://github.com/vim/vim/issues/11901)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 28 Jan 2023 16:30:04 +0100 |
parents | 6377d791dcd1 |
children | 05414bdc5c2c |
line wrap: on
line diff
--- a/src/structs.h +++ b/src/structs.h @@ -1484,15 +1484,17 @@ typedef struct { char_u *ocm_init; // allocated } ocmember_T; -// used for the lookup table of a class member index +// used for the lookup table of a class member index and object method index typedef struct itf2class_S itf2class_T; struct itf2class_S { itf2class_T *i2c_next; class_T *i2c_class; + int i2c_is_method; // TRUE for method indexes // array with ints follows }; -#define CLASS_INTERFACE 1 +#define CLASS_INTERFACE 1 +#define CLASS_EXTENDED 2 // another class extends this one // "class_T": used for v_class of typval of VAR_CLASS // Also used for an interface (class_flags has CLASS_INTERFACE).