0
0
mirror of https://github.com/vim/vim.git synced 2025-09-26 04:04:07 -04:00

patch 8.2.3633: Vim9: line number of lambda is off by one

Problem:    Vim9: line number of lambda is off by one.
Solution:   Add one to the line number. (closes #9083)
This commit is contained in:
Bram Moolenaar
2021-11-20 21:35:41 +00:00
parent 9cd9385db7
commit a755fdbe80
3 changed files with 17 additions and 1 deletions

View File

@@ -1052,6 +1052,20 @@ def Test_call_lambda_args()
CheckScriptFailure(['vim9script'] + lines, 'E118: Too many arguments for function: <lambda>', 2) CheckScriptFailure(['vim9script'] + lines, 'E118: Too many arguments for function: <lambda>', 2)
enddef enddef
def Test_lambda_line_nr()
var lines =<< trim END
vim9script
# comment
# comment
var id = timer_start(1'000, (_) => 0)
var out = execute('verbose ' .. timer_info(id)[0].callback
->string()
->substitute("('\\|')", ' ', 'g'))
assert_match('Last set from .* line 4', out)
END
CheckScriptSuccess(lines)
enddef
def FilterWithCond(x: string, Cond: func(string): bool): bool def FilterWithCond(x: string, Cond: func(string): bool): bool
return Cond(x) return Cond(x)
enddef enddef

View File

@@ -1491,7 +1491,7 @@ get_lambda_tv(
fp->uf_flags = flags; fp->uf_flags = flags;
fp->uf_calls = 0; fp->uf_calls = 0;
fp->uf_script_ctx = current_sctx; fp->uf_script_ctx = current_sctx;
fp->uf_script_ctx.sc_lnum += SOURCING_LNUM - newlines.ga_len; fp->uf_script_ctx.sc_lnum += SOURCING_LNUM - newlines.ga_len + 1;
function_using_block_scopes(fp, evalarg->eval_cstack); function_using_block_scopes(fp, evalarg->eval_cstack);

View File

@@ -757,6 +757,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
3633,
/**/ /**/
3632, 3632,
/**/ /**/