Mercurial > vim
comparison src/vim9execute.c @ 19912:d4fa9db88d16 v8.2.0512
patch 8.2.0512: Vim9: no optional arguments in func type
Commit: https://github.com/vim/vim/commit/5deeb3f1f9db4eabd36e99cbf857fe376eb37e10
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Apr 5 17:08:17 2020 +0200
patch 8.2.0512: Vim9: no optional arguments in func type
Problem: Vim9: no optional arguments in func type.
Solution: Check for question mark after type. Find function reference
without function().
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 05 Apr 2020 17:15:25 +0200 |
parents | f92435f0f449 |
children | 1f42c49c3d29 |
comparison
equal
deleted
inserted
replaced
19911:70edfdef3b83 | 19912:d4fa9db88d16 |
---|---|
375 store_var(char_u *name, typval_T *tv) | 375 store_var(char_u *name, typval_T *tv) |
376 { | 376 { |
377 funccal_entry_T entry; | 377 funccal_entry_T entry; |
378 | 378 |
379 save_funccal(&entry); | 379 save_funccal(&entry); |
380 set_var_const(name, NULL, tv, FALSE, 0); | 380 set_var_const(name, NULL, tv, FALSE, LET_NO_COMMAND); |
381 restore_funccal(); | 381 restore_funccal(); |
382 } | 382 } |
383 | 383 |
384 /* | 384 /* |
385 * Execute a function by "name". | 385 * Execute a function by "name". |
737 char_u *name = iptr->isn_arg.loadstore.ls_name; | 737 char_u *name = iptr->isn_arg.loadstore.ls_name; |
738 dictitem_T *di = find_var_in_ht(ht, 0, name + 2, TRUE); | 738 dictitem_T *di = find_var_in_ht(ht, 0, name + 2, TRUE); |
739 | 739 |
740 --ectx.ec_stack.ga_len; | 740 --ectx.ec_stack.ga_len; |
741 if (di == NULL) | 741 if (di == NULL) |
742 store_var(iptr->isn_arg.string, STACK_TV_BOT(0)); | 742 store_var(name, STACK_TV_BOT(0)); |
743 else | 743 else |
744 { | 744 { |
745 clear_tv(&di->di_tv); | 745 clear_tv(&di->di_tv); |
746 di->di_tv = *STACK_TV_BOT(0); | 746 di->di_tv = *STACK_TV_BOT(0); |
747 } | 747 } |
1826 { | 1826 { |
1827 scriptitem_T *si = SCRIPT_ITEM( | 1827 scriptitem_T *si = SCRIPT_ITEM( |
1828 iptr->isn_arg.loadstore.ls_sid); | 1828 iptr->isn_arg.loadstore.ls_sid); |
1829 | 1829 |
1830 smsg("%4d LOADS s:%s from %s", current, | 1830 smsg("%4d LOADS s:%s from %s", current, |
1831 iptr->isn_arg.string, si->sn_name); | 1831 iptr->isn_arg.loadstore.ls_name, si->sn_name); |
1832 } | 1832 } |
1833 break; | 1833 break; |
1834 case ISN_LOADG: | 1834 case ISN_LOADG: |
1835 smsg("%4d LOADG g:%s", current, iptr->isn_arg.string); | 1835 smsg("%4d LOADG g:%s", current, iptr->isn_arg.string); |
1836 break; | 1836 break; |
1863 { | 1863 { |
1864 scriptitem_T *si = SCRIPT_ITEM( | 1864 scriptitem_T *si = SCRIPT_ITEM( |
1865 iptr->isn_arg.loadstore.ls_sid); | 1865 iptr->isn_arg.loadstore.ls_sid); |
1866 | 1866 |
1867 smsg("%4d STORES %s in %s", current, | 1867 smsg("%4d STORES %s in %s", current, |
1868 iptr->isn_arg.string, si->sn_name); | 1868 iptr->isn_arg.loadstore.ls_name, si->sn_name); |
1869 } | 1869 } |
1870 break; | 1870 break; |
1871 case ISN_STORESCRIPT: | 1871 case ISN_STORESCRIPT: |
1872 { | 1872 { |
1873 scriptitem_T *si = | 1873 scriptitem_T *si = |