patch 8.2.0340: Vim9: function and partial types not tested
Problem: Vim9: function and partial types not tested.
Solution: Support more for partial, add tests.
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 4fb5478..64ed038 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -706,6 +706,23 @@
}
/*
+ * Generate an ISN_PUSHPARTIAL instruction with partial "part".
+ * Consumes "name".
+ */
+ static int
+generate_PUSHPARTIAL(cctx_T *cctx, partial_T *part)
+{
+ isn_T *isn;
+
+ if ((isn = generate_instr_type(cctx, ISN_PUSHPARTIAL,
+ &t_partial_any)) == NULL)
+ return FAIL;
+ isn->isn_arg.partial = part;
+
+ return OK;
+}
+
+/*
* Generate an ISN_STORE instruction.
*/
static int
@@ -3605,8 +3622,7 @@
generate_PUSHFUNC(cctx, NULL);
break;
case VAR_PARTIAL:
- // generate_PUSHPARTIAL(cctx, NULL);
- emsg("Partial type not supported yet");
+ generate_PUSHPARTIAL(cctx, NULL);
break;
case VAR_LIST:
generate_NEWLIST(cctx, 0);
@@ -5228,7 +5244,7 @@
break;
case ISN_PUSHPARTIAL:
- // TODO
+ partial_unref(isn->isn_arg.partial);
break;
case ISN_PUSHJOB: