vim-patch:9.1.1667: Another outdated comment in eval.c (#35438)

Problem:  Another outdated comment in eval.c (after 9.1.1665).
Solution: Remove that comment as well. Add a few more tests for mapnew()
          that fail without patch 8.2.1672 (zeertzjq).

closes: vim/vim#18089

6b56711804
This commit is contained in:
zeertzjq
2025-08-23 18:35:18 +08:00
committed by GitHub
parent b9699d5701
commit 639f9f4cda
2 changed files with 20 additions and 1 deletions

View File

@@ -2553,7 +2553,6 @@ void clear_evalarg(evalarg_T *evalarg, exarg_T *eap)
/// Handle zero level expression.
/// This calls eval1() and handles error message and nextcmd.
/// Put the result in "rettv" when returning OK and "evaluate" is true.
/// Note: "rettv.v_lock" is not set.
///
/// @param evalarg can be NULL, &EVALARG_EVALUATE or a pointer.
///

View File

@@ -222,6 +222,16 @@ func Test_mapnew_dict()
const dconst = #{one: 1, two: 2, three: 3}
call assert_equal(#{one: 2, two: 3, three: 4}, mapnew(dconst, {_, v -> v + 1}))
" return value of mapnew() can be modified
let dout = mapnew(dconst, {k, v -> $'{k}={v}'})
let dout.one ..= '!'
call assert_equal(#{one: 'one=1!', two: 'two=2', three: 'three=3'}, dout)
unlet dout.three
call assert_equal(#{one: 'one=1!', two: 'two=2'}, dout)
" original Dict is still locked
call assert_fails('unlet dconst.three', 'E741:')
call assert_fails('let dconst.one += 1', 'E741:')
endfunc
func Test_mapnew_list()
@@ -232,6 +242,16 @@ func Test_mapnew_list()
const lconst = [1, 2, 3]
call assert_equal([2, 3, 4], mapnew(lconst, {_, v -> v + 1}))
" return value of mapnew() can be modified
let lout = mapnew(lconst, {k, v -> $'{k}={v}'})
let lout[0] ..= '!'
call assert_equal(['0=1!', '1=2', '2=3'], lout)
unlet lout[2]
call assert_equal(['0=1!', '1=2'], lout)
" original List is still locked
call assert_fails('unlet lconst[2]', 'E741:')
call assert_fails('let lconst[0] += 1', 'E741:')
endfunc
func Test_mapnew_blob()