Mercurial > vim
comparison src/vim9instr.c @ 33540:86dbcbb94fdb v9.0.2019
patch 9.0.2019: Vim9: no support for funcrefs
Commit: https://github.com/vim/vim/commit/29bb67f1beefc7fd393dbfd9ee77d92f1db3a3c0
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Sat Oct 14 11:18:50 2023 +0200
patch 9.0.2019: Vim9: no support for funcrefs
Problem: Vim9: no support for funcrefs
Solution: Add support for object/class funcref members
closes: #11981 #12417 #12960 #12324 #13333
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 14 Oct 2023 11:30:07 +0200 |
parents | 4a62e78803db |
children | c470d4fd5eba |
comparison
equal
deleted
inserted
replaced
33539:98e6eaaf8458 | 33540:86dbcbb94fdb |
---|---|
1382 int | 1382 int |
1383 generate_FUNCREF( | 1383 generate_FUNCREF( |
1384 cctx_T *cctx, | 1384 cctx_T *cctx, |
1385 ufunc_T *ufunc, | 1385 ufunc_T *ufunc, |
1386 class_T *cl, | 1386 class_T *cl, |
1387 int object_method, | |
1387 int fi, | 1388 int fi, |
1388 int *isn_idx) | 1389 int *isn_idx) |
1389 { | 1390 { |
1390 isn_T *isn; | 1391 isn_T *isn; |
1391 type_T *type; | 1392 type_T *type; |
1410 extra->fre_loopvar_info = loopinfo; | 1411 extra->fre_loopvar_info = loopinfo; |
1411 if (cl != NULL) | 1412 if (cl != NULL) |
1412 { | 1413 { |
1413 extra->fre_class = cl; | 1414 extra->fre_class = cl; |
1414 ++cl->class_refcount; | 1415 ++cl->class_refcount; |
1416 extra->fre_object_method = object_method; | |
1415 extra->fre_method_idx = fi; | 1417 extra->fre_method_idx = fi; |
1416 } | 1418 } |
1417 } | 1419 } |
1418 if (ufunc->uf_def_status == UF_NOT_COMPILED || cl != NULL) | 1420 if (ufunc->uf_def_status == UF_NOT_COMPILED || cl != NULL) |
1419 extra->fre_func_name = vim_strsave(ufunc->uf_name); | 1421 extra->fre_func_name = vim_strsave(ufunc->uf_name); |