vim-patch:8.1.2349: :lockvar and :unlockvar cannot be followed by "| endif"

Problem:    :lockvar and :unlockvar cannot be followed by "| endif".
Solution:   Check for following commands. (closes vim/vim#5269)
cc4423ae13
This commit is contained in:
Jan Edmund Lazo
2019-11-26 20:40:12 -05:00
parent f196ab87a1
commit 90f2b13604
2 changed files with 16 additions and 0 deletions

View File

@@ -2151,6 +2151,7 @@ static char_u * do_one_cmd(char_u **cmdlinep,
case CMD_leftabove:
case CMD_let:
case CMD_lockmarks:
case CMD_lockvar:
case CMD_lua:
case CMD_match:
case CMD_mzscheme:
@@ -2179,6 +2180,7 @@ static char_u * do_one_cmd(char_u **cmdlinep,
case CMD_tilde:
case CMD_topleft:
case CMD_unlet:
case CMD_unlockvar:
case CMD_verbose:
case CMD_vertical:
case CMD_wincmd:

View File

@@ -182,6 +182,20 @@ func Test_const_with_condition()
call assert_equal(0, x)
endfunc
func Test_lockvar()
let x = 'hello'
lockvar x
call assert_fails('let x = "there"', 'E741')
if 0 | unlockvar x | endif
call assert_fails('let x = "there"', 'E741')
unlockvar x
let x = 'there'
if 0 | lockvar x | endif
let x = 'again'
endfunc
func Test_const_with_index_access()
let l = [1, 2, 3]
call assert_fails('const l[0] = 4', 'E996:')