Mercurial > vim
comparison src/vim9execute.c @ 21863:809b1e7fbd72 v8.2.1481
patch 8.2.1481: Vim9: line number reported with error may be wrong
Commit: https://github.com/vim/vim/commit/3affe7a6c6fc813f5d29857933ee6aca0b9c7bd6
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Aug 18 20:34:13 2020 +0200
patch 8.2.1481: Vim9: line number reported with error may be wrong
Problem: Vim9: line number reported with error may be wrong.
Solution: Check line number in tests.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 18 Aug 2020 20:45:03 +0200 |
parents | 3e5d0832a2e7 |
children | 5edd776d886d |
comparison
equal
deleted
inserted
replaced
21862:961d816a163f | 21863:809b1e7fbd72 |
---|---|
2315 | 2315 |
2316 // index: composite is at stack-2, index at stack-1 | 2316 // index: composite is at stack-2, index at stack-1 |
2317 // slice: composite is at stack-3, indexes at stack-2 and | 2317 // slice: composite is at stack-3, indexes at stack-2 and |
2318 // stack-1 | 2318 // stack-1 |
2319 tv = is_slice ? STACK_TV_BOT(-3) : STACK_TV_BOT(-2); | 2319 tv = is_slice ? STACK_TV_BOT(-3) : STACK_TV_BOT(-2); |
2320 SOURCING_LNUM = iptr->isn_lnum; | |
2320 if (check_can_index(tv, TRUE, TRUE) == FAIL) | 2321 if (check_can_index(tv, TRUE, TRUE) == FAIL) |
2321 goto on_error; | 2322 goto on_error; |
2322 var1 = is_slice ? STACK_TV_BOT(-2) : STACK_TV_BOT(-1); | 2323 var1 = is_slice ? STACK_TV_BOT(-2) : STACK_TV_BOT(-1); |
2323 var2 = is_slice ? STACK_TV_BOT(-1) : NULL; | 2324 var2 = is_slice ? STACK_TV_BOT(-1) : NULL; |
2324 res = eval_index_inner(tv, is_slice, | 2325 res = eval_index_inner(tv, is_slice, |
2461 case ISN_CHECKNR: | 2462 case ISN_CHECKNR: |
2462 { | 2463 { |
2463 int error = FALSE; | 2464 int error = FALSE; |
2464 | 2465 |
2465 tv = STACK_TV_BOT(-1); | 2466 tv = STACK_TV_BOT(-1); |
2467 SOURCING_LNUM = iptr->isn_lnum; | |
2466 if (check_not_string(tv) == FAIL) | 2468 if (check_not_string(tv) == FAIL) |
2467 goto on_error; | 2469 goto on_error; |
2468 (void)tv_get_number_chk(tv, &error); | 2470 (void)tv_get_number_chk(tv, &error); |
2469 if (error) | 2471 if (error) |
2470 goto on_error; | 2472 goto on_error; |