comparison src/vim9instr.c @ 28002:1012048eed26 v8.2.4526

patch 8.2.4526: Vim9: cannot set variables to a null value Commit: https://github.com/vim/vim/commit/8acb9cc6209768ca7ec75c9f7af8c389312ea8d6 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Mar 8 13:18:55 2022 +0000 patch 8.2.4526: Vim9: cannot set variables to a null value Problem: Vim9: cannot set variables to a null value. Solution: Add null_list, null_job, etc.
author Bram Moolenaar <Bram@vim.org>
date Tue, 08 Mar 2022 14:30:05 +0100
parents e6e3abc28c7a
children cc7d54a134e4
comparison
equal deleted inserted replaced
28001:5357aeb3985f 28002:1012048eed26
568 #endif 568 #endif
569 case VAR_BLOB: 569 case VAR_BLOB:
570 generate_PUSHBLOB(cctx, tv->vval.v_blob); 570 generate_PUSHBLOB(cctx, tv->vval.v_blob);
571 tv->vval.v_blob = NULL; 571 tv->vval.v_blob = NULL;
572 break; 572 break;
573 case VAR_LIST:
574 if (tv->vval.v_list != NULL)
575 iemsg("non-empty list constant not supported");
576 generate_NEWLIST(cctx, 0);
577 break;
578 case VAR_DICT:
579 if (tv->vval.v_dict != NULL)
580 iemsg("non-empty dict constant not supported");
581 generate_NEWDICT(cctx, 0);
582 break;
583 #ifdef FEAT_JOB_CHANNEL
584 case VAR_JOB:
585 if (tv->vval.v_job != NULL)
586 iemsg("non-null job constant not supported");
587 generate_PUSHJOB(cctx, NULL);
588 break;
589 case VAR_CHANNEL:
590 if (tv->vval.v_channel != NULL)
591 iemsg("non-null channel constant not supported");
592 generate_PUSHCHANNEL(cctx, NULL);
593 break;
594 #endif
595 case VAR_FUNC:
596 if (tv->vval.v_string != NULL)
597 iemsg("non-null function constant not supported");
598 generate_PUSHFUNC(cctx, NULL, &t_func_unknown);
599 break;
600 case VAR_PARTIAL:
601 if (tv->vval.v_partial != NULL)
602 iemsg("non-null partial constant not supported");
603 if (generate_instr_type(cctx, ISN_NEWPARTIAL, &t_func_unknown)
604 == NULL)
605 return FAIL;
606 break;
573 case VAR_STRING: 607 case VAR_STRING:
574 generate_PUSHS(cctx, &tv->vval.v_string); 608 generate_PUSHS(cctx, &tv->vval.v_string);
575 tv->vval.v_string = NULL; 609 tv->vval.v_string = NULL;
576 break; 610 break;
577 default: 611 default:
704 generate_PUSHJOB(cctx_T *cctx, job_T *job) 738 generate_PUSHJOB(cctx_T *cctx, job_T *job)
705 { 739 {
706 isn_T *isn; 740 isn_T *isn;
707 741
708 RETURN_OK_IF_SKIP(cctx); 742 RETURN_OK_IF_SKIP(cctx);
709 if ((isn = generate_instr_type(cctx, ISN_PUSHJOB, &t_channel)) == NULL) 743 if ((isn = generate_instr_type(cctx, ISN_PUSHJOB, &t_job)) == NULL)
710 return FAIL; 744 return FAIL;
711 isn->isn_arg.job = job; 745 isn->isn_arg.job = job;
712 746
713 return OK; 747 return OK;
714 } 748 }
2183 case ISN_LOCKCONST: 2217 case ISN_LOCKCONST:
2184 case ISN_MEMBER: 2218 case ISN_MEMBER:
2185 case ISN_NEGATENR: 2219 case ISN_NEGATENR:
2186 case ISN_NEWDICT: 2220 case ISN_NEWDICT:
2187 case ISN_NEWLIST: 2221 case ISN_NEWLIST:
2222 case ISN_NEWPARTIAL:
2188 case ISN_OPANY: 2223 case ISN_OPANY:
2189 case ISN_OPFLOAT: 2224 case ISN_OPFLOAT:
2190 case ISN_OPNR: 2225 case ISN_OPNR:
2191 case ISN_PCALL: 2226 case ISN_PCALL:
2192 case ISN_PCALL_END: 2227 case ISN_PCALL_END: