mirror of
https://github.com/neovim/neovim.git
synced 2025-10-06 18:06:30 +00:00
vim-patch:9.0.1723: Fix regression in {func} argument of reduce()
Problem: Fix regression in {func} argument of reduce()
Solution: pass function name as string again
Before patch 9.0.0548, passing a string as {func} argument of reduce()
is treated as a function name, but after patch 9.0.0548 it is treated as
an expression instead, which is useless as reduce() doesn't set any v:
variables. This PR restores the behavior of {func} before that patch.
Also correct an emsg() call, as e_string_list_or_blob_required doesn't
contain format specifiers.
closes: vim/vim#12824
ad0c442f1f
This commit is contained in:
@@ -944,6 +944,10 @@ func Test_reduce()
|
||||
call assert_equal('Å,s,t,r,ö,m', reduce('Åström', LSTART acc, val LMIDDLE acc .. ',' .. val LEND))
|
||||
call assert_equal('Å,s,t,r,ö,m', reduce('Åström', LSTART acc, val LMIDDLE acc .. ',' .. val LEND))
|
||||
call assert_equal(',a,b,c', reduce('abc', LSTART acc, val LMIDDLE acc .. ',' .. val LEND, v:_null_string))
|
||||
|
||||
call assert_equal(0x7d, reduce([0x30, 0x25, 0x08, 0x61], 'or'))
|
||||
call assert_equal(0x7d, reduce(0z30250861, 'or'))
|
||||
call assert_equal('β', reduce('ββββ', 'matchstr'))
|
||||
END
|
||||
call CheckLegacyAndVim9Success(lines)
|
||||
|
||||
@@ -958,7 +962,7 @@ func Test_reduce()
|
||||
|
||||
call assert_fails("call reduce({}, { acc, val -> acc + val }, 1)", 'E1098:')
|
||||
call assert_fails("call reduce(0, { acc, val -> acc + val }, 1)", 'E1098:')
|
||||
call assert_fails("call reduce([1, 2], 'Xdoes_not_exist')", 'E121:')
|
||||
call assert_fails("call reduce([1, 2], 'Xdoes_not_exist')", 'E117:')
|
||||
call assert_fails("echo reduce(0z01, { acc, val -> 2 * acc + val }, '')", 'E1210:')
|
||||
|
||||
" call assert_fails("vim9 reduce(0, (acc, val) => (acc .. val), '')", 'E1252:')
|
||||
|
Reference in New Issue
Block a user