diff --git a/src/evalvars.c b/src/evalvars.c index bebee2a5b..35a1d2083 100644 --- a/src/evalvars.c +++ b/src/evalvars.c @@ -3842,7 +3842,8 @@ set_var_const( } if ((flags & ASSIGN_FOR_LOOP) == 0 - && var_check_permission(di, name) == FAIL) + ? var_check_permission(di, name) == FAIL + : var_check_ro(di->di_flags, name, FALSE)) goto failed; } else diff --git a/src/testdir/test_eval_stuff.vim b/src/testdir/test_eval_stuff.vim index 46ec12df1..a346399eb 100644 --- a/src/testdir/test_eval_stuff.vim +++ b/src/testdir/test_eval_stuff.vim @@ -126,6 +126,7 @@ func Test_for_invalid() call assert_fails("for x in 99", 'E1098:') call assert_fails("for x in function('winnr')", 'E1098:') call assert_fails("for x in {'a': 9}", 'E1098:') + call assert_fails("for v:maxcol in range(1)", 'E46:') if 0 /1/5/2/s/\n diff --git a/src/version.c b/src/version.c index a8f210469..2e3c240f6 100644 --- a/src/version.c +++ b/src/version.c @@ -695,6 +695,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1611, /**/ 1610, /**/