Mercurial > vim
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: |