Mercurial > vim
comparison src/vim9execute.c @ 22596:107eae953b87 v8.2.1846
patch 8.2.1846: Vim9: block variables are not found in compiled function
Commit: https://github.com/vim/vim/commit/fbbcd00367e1a4fafd047d42ffce0e5dce88925c
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Oct 15 12:46:44 2020 +0200
patch 8.2.1846: Vim9: block variables are not found in compiled function
Problem: Vim9: variables declared in a local block are not found in
when a function is compiled.
Solution: Look for script variables in sn_all_vars.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 15 Oct 2020 13:00:05 +0200 |
parents | 7d6ba4204f66 |
children | b08f435d5b86 |
comparison
equal
deleted
inserted
replaced
22595:a42172375311 | 22596:107eae953b87 |
---|---|
2960 scriptitem_T *si = | 2960 scriptitem_T *si = |
2961 SCRIPT_ITEM(iptr->isn_arg.script.script_sid); | 2961 SCRIPT_ITEM(iptr->isn_arg.script.script_sid); |
2962 svar_T *sv = ((svar_T *)si->sn_var_vals.ga_data) | 2962 svar_T *sv = ((svar_T *)si->sn_var_vals.ga_data) |
2963 + iptr->isn_arg.script.script_idx; | 2963 + iptr->isn_arg.script.script_idx; |
2964 | 2964 |
2965 smsg("%4d LOADSCRIPT %s from %s", current, | 2965 smsg("%4d LOADSCRIPT %s-%d from %s", current, |
2966 sv->sv_name, si->sn_name); | 2966 sv->sv_name, |
2967 iptr->isn_arg.script.script_idx, | |
2968 si->sn_name); | |
2967 } | 2969 } |
2968 break; | 2970 break; |
2969 case ISN_LOADS: | 2971 case ISN_LOADS: |
2970 { | 2972 { |
2971 scriptitem_T *si = SCRIPT_ITEM( | 2973 scriptitem_T *si = SCRIPT_ITEM( |
3052 scriptitem_T *si = | 3054 scriptitem_T *si = |
3053 SCRIPT_ITEM(iptr->isn_arg.script.script_sid); | 3055 SCRIPT_ITEM(iptr->isn_arg.script.script_sid); |
3054 svar_T *sv = ((svar_T *)si->sn_var_vals.ga_data) | 3056 svar_T *sv = ((svar_T *)si->sn_var_vals.ga_data) |
3055 + iptr->isn_arg.script.script_idx; | 3057 + iptr->isn_arg.script.script_idx; |
3056 | 3058 |
3057 smsg("%4d STORESCRIPT %s in %s", current, | 3059 smsg("%4d STORESCRIPT %s-%d in %s", current, |
3058 sv->sv_name, si->sn_name); | 3060 sv->sv_name, |
3061 iptr->isn_arg.script.script_idx, | |
3062 si->sn_name); | |
3059 } | 3063 } |
3060 break; | 3064 break; |
3061 case ISN_STOREOPT: | 3065 case ISN_STOREOPT: |
3062 smsg("%4d STOREOPT &%s", current, | 3066 smsg("%4d STOREOPT &%s", current, |
3063 iptr->isn_arg.storeopt.so_name); | 3067 iptr->isn_arg.storeopt.so_name); |