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);