vim-patch:8.2.3908: cannot use a script-local function for 'foldtext'

Problem:    Cannot use a script-local function for 'foldtext'.
Solution:   Expand "s:" and "<SID>". (Yegappan Lakshmanan, closes vim/vim#9411)

27708e6c7b

Cherry-pick test_filter_map.vim change from patch 8.2.3871.

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
zeertzjq
2023-08-17 13:01:45 +08:00
parent faef577e90
commit db64280be5
5 changed files with 18 additions and 3 deletions

View File

@@ -5217,9 +5217,6 @@ static void filter_map(typval_T *argvars, typval_T *rettv, filtermap_T filtermap
typval_T newtv; typval_T newtv;
if (filter_map_one(&tv, expr, filtermap, &newtv, &rem) == FAIL if (filter_map_one(&tv, expr, filtermap, &newtv, &rem) == FAIL
|| did_emsg) { || did_emsg) {
break;
}
if (did_emsg) {
tv_clear(&newtv); tv_clear(&newtv);
tv_clear(&tv); tv_clear(&tv);
break; break;

View File

@@ -38,6 +38,7 @@ func Test_blob_create()
call assert_fails('VAR b = 0z001122.') call assert_fails('VAR b = 0z001122.')
call assert_fails('call get("", 1)', 'E896:') call assert_fails('call get("", 1)', 'E896:')
call assert_equal(0, len(v:_null_blob)) call assert_equal(0, len(v:_null_blob))
call assert_equal(0z, copy(v:_null_blob))
END END
call CheckLegacyAndVim9Success(lines) call CheckLegacyAndVim9Success(lines)
endfunc endfunc
@@ -370,6 +371,14 @@ func Test_blob_add()
add(v:_null_blob, 0x22) add(v:_null_blob, 0x22)
END END
call CheckDefExecAndScriptFailure(lines, 'E1131:') call CheckDefExecAndScriptFailure(lines, 'E1131:')
let lines =<< trim END
let b = 0zDEADBEEF
lockvar b
call add(b, 0)
unlockvar b
END
call CheckScriptFailure(lines, 'E741:')
endfunc endfunc
func Test_blob_empty() func Test_blob_empty()
@@ -464,6 +473,9 @@ func Test_blob_func_remove()
remove(b, 0) remove(b, 0)
END END
call CheckScriptFailure(lines, 'E741:') call CheckScriptFailure(lines, 'E741:')
call assert_fails('echo remove(0z1020, [])', 'E745:')
call assert_fails('echo remove(0z1020, 0, [])', 'E745:')
endfunc endfunc
func Test_blob_read_write() func Test_blob_read_write()
@@ -524,6 +536,7 @@ func Test_blob_filter()
call assert_equal(0zADEF, filter(0zDEADBEEF, 'v:key % 2')) call assert_equal(0zADEF, filter(0zDEADBEEF, 'v:key % 2'))
END END
call CheckLegacyAndVim9Success(lines) call CheckLegacyAndVim9Success(lines)
call assert_fails('echo filter(0z10, "a10")', 'E121:')
endfunc endfunc
" map() item in blob " map() item in blob
@@ -539,6 +552,7 @@ func Test_blob_map()
call map(0z00, '[9]') call map(0z00, '[9]')
END END
call CheckLegacyAndVim9Failure(lines, 'E978:') call CheckLegacyAndVim9Failure(lines, 'E978:')
call assert_fails('echo map(0z10, "a10")', 'E121:')
endfunc endfunc
func Test_blob_index() func Test_blob_index()

View File

@@ -421,6 +421,7 @@ func Test_printf_misc()
call assert_equal('[00000あiう]', printf('[%010.7S]', 'あiう')) call assert_equal('[00000あiう]', printf('[%010.7S]', 'あiう'))
call assert_equal('1%', printf('%d%%', 1)) call assert_equal('1%', printf('%d%%', 1))
call assert_notequal('', printf('%p', "abc"))
END END
call CheckLegacyAndVim9Success(lines) call CheckLegacyAndVim9Success(lines)

View File

@@ -175,6 +175,8 @@ func Test_filter_map_string()
call assert_equal('', map('abc', LSTART i, x LMIDDLE '' LEND)) call assert_equal('', map('abc', LSTART i, x LMIDDLE '' LEND))
call assert_equal('', map('', "v:val == 'a'")) call assert_equal('', map('', "v:val == 'a'"))
call assert_equal('', map(v:_null_string, "v:val == 'a'")) call assert_equal('', map(v:_null_string, "v:val == 'a'"))
call assert_fails('echo map("abc", "10")', 'E928:')
call assert_fails('echo map("abc", "a10")', 'E121:')
END END
call CheckLegacyAndVim9Success(lines) call CheckLegacyAndVim9Success(lines)

View File

@@ -1079,6 +1079,7 @@ func Test_listdict_extend()
let d = {'a': 'A', 'b': 'B'} let d = {'a': 'A', 'b': 'B'}
call assert_fails("call extend(d, {'b': 0, 'c':'C'}, 'error')", 'E737:') call assert_fails("call extend(d, {'b': 0, 'c':'C'}, 'error')", 'E737:')
call assert_fails("call extend(d, {'b': 0}, [])", 'E730:')
call assert_fails("call extend(d, {'b': 0, 'c':'C'}, 'xxx')", 'E475:') call assert_fails("call extend(d, {'b': 0, 'c':'C'}, 'xxx')", 'E475:')
if has('float') if has('float')
call assert_fails("call extend(d, {'b': 0, 'c':'C'}, 1.2)", 'E475:') call assert_fails("call extend(d, {'b': 0, 'c':'C'}, 1.2)", 'E475:')