Problem: Vim9: VAR_PARTIAL is not used during compilation.
Solution: Remove VAR_PARTIAL.
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 538,
/**/
537,
/**/
ISN_PUSHS, // push string isn_arg.string
ISN_PUSHBLOB, // push blob isn_arg.blob
ISN_PUSHFUNC, // push func isn_arg.string
- ISN_PUSHPARTIAL, // push partial ?
ISN_PUSHCHANNEL, // push channel isn_arg.channel
ISN_PUSHJOB, // push channel isn_arg.job
ISN_NEWLIST, // push list from stack items, size is isn_arg.number
ISN_COMPARELIST,
ISN_COMPAREDICT,
ISN_COMPAREFUNC,
- ISN_COMPAREPARTIAL,
ISN_COMPAREANY,
// expression operations
if (tv->v_type == VAR_NUMBER)
return &t_number;
if (tv->v_type == VAR_BOOL)
- return &t_bool;
+ return &t_bool; // not used
if (tv->v_type == VAR_STRING)
return &t_string;
if (tv->v_type == VAR_LIST) // e.g. for v:oldfiles
case VAR_LIST: isntype = ISN_COMPARELIST; break;
case VAR_DICT: isntype = ISN_COMPAREDICT; break;
case VAR_FUNC: isntype = ISN_COMPAREFUNC; break;
- case VAR_PARTIAL: isntype = ISN_COMPAREPARTIAL; break;
default: isntype = ISN_COMPAREANY; break;
}
}
return OK;
}
-/*
- * Generate an ISN_PUSHPARTIAL instruction with partial "part".
- * Consumes "part".
- */
- static int
-generate_PUSHPARTIAL(cctx_T *cctx, partial_T *part)
-{
- isn_T *isn;
-
- RETURN_OK_IF_SKIP(cctx);
- if ((isn = generate_instr_type(cctx, ISN_PUSHPARTIAL, &t_func_any)) == NULL)
- return FAIL;
- isn->isn_arg.partial = part;
-
- return OK;
-}
-
/*
* Generate an ISN_STORE instruction.
*/
case VAR_FUNC:
generate_PUSHFUNC(cctx, NULL, &t_func_void);
break;
- case VAR_PARTIAL:
- generate_PUSHPARTIAL(cctx, NULL);
- break;
case VAR_LIST:
generate_NEWLIST(cctx, 0);
break;
case VAR_NUMBER:
case VAR_UNKNOWN:
case VAR_ANY:
+ case VAR_PARTIAL:
case VAR_VOID:
case VAR_SPECIAL: // cannot happen
generate_PUSHNR(cctx, 0);
blob_unref(isn->isn_arg.blob);
break;
- case ISN_PUSHPARTIAL:
- partial_unref(isn->isn_arg.partial);
- break;
-
case ISN_PUSHJOB:
#ifdef FEAT_JOB_CHANNEL
job_unref(isn->isn_arg.job);
case ISN_COMPAREFUNC:
case ISN_COMPARELIST:
case ISN_COMPARENR:
- case ISN_COMPAREPARTIAL:
case ISN_COMPARESPECIAL:
case ISN_COMPARESTRING:
case ISN_CONCAT:
case ISN_PUSHS:
case ISN_PUSHBLOB:
case ISN_PUSHFUNC:
- case ISN_PUSHPARTIAL:
case ISN_PUSHCHANNEL:
case ISN_PUSHJOB:
if (ga_grow(&ectx.ec_stack, 1) == FAIL)
tv->vval.v_string =
vim_strsave(iptr->isn_arg.string);
break;
- case ISN_PUSHPARTIAL:
- tv->v_type = VAR_PARTIAL;
- tv->vval.v_partial = iptr->isn_arg.partial;
- if (tv->vval.v_partial != NULL)
- ++tv->vval.v_partial->pt_refcount;
- break;
case ISN_PUSHCHANNEL:
#ifdef FEAT_JOB_CHANNEL
tv->v_type = VAR_CHANNEL;
case ISN_COMPARESTRING:
case ISN_COMPAREDICT:
case ISN_COMPAREFUNC:
- case ISN_COMPAREPARTIAL:
case ISN_COMPAREANY:
{
typval_T *tv1 = STACK_TV_BOT(-2);
name == NULL ? "[none]" : name);
}
break;
- case ISN_PUSHPARTIAL:
- {
- partial_T *part = iptr->isn_arg.partial;
-
- smsg("%4d PUSHPARTIAL \"%s\"", current,
- part == NULL ? "[none]" : (char *)partial_name(part));
- }
- break;
case ISN_PUSHCHANNEL:
#ifdef FEAT_JOB_CHANNEL
{
case ISN_COMPARELIST:
case ISN_COMPAREDICT:
case ISN_COMPAREFUNC:
- case ISN_COMPAREPARTIAL:
case ISN_COMPAREANY:
{
char *p;
case ISN_COMPARELIST: type = "COMPARELIST"; break;
case ISN_COMPAREDICT: type = "COMPAREDICT"; break;
case ISN_COMPAREFUNC: type = "COMPAREFUNC"; break;
- case ISN_COMPAREPARTIAL:
- type = "COMPAREPARTIAL"; break;
case ISN_COMPAREANY: type = "COMPAREANY"; break;
default: type = "???"; break;
}