From 6b5671180440f07f9f6955f46bab380bdc23f950 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 23 Aug 2025 06:10:23 -0400 Subject: [PATCH] patch 9.1.1667: Another outdated comment in eval.c 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: #18089 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- src/eval.c | 1 - src/testdir/test_filter_map.vim | 20 ++++++++++++++++++++ src/version.c | 2 ++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/eval.c b/src/eval.c index 65c62e7fbd..9e6dc74447 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3398,7 +3398,6 @@ skipwhite_and_linebreak(char_u *arg, evalarg_T *evalarg) * 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. * "evalarg" can be NULL, EVALARG_EVALUATE or a pointer. * Return OK or FAIL. */ diff --git a/src/testdir/test_filter_map.vim b/src/testdir/test_filter_map.vim index 138ca18b5c..d3f8327e88 100644 --- a/src/testdir/test_filter_map.vim +++ b/src/testdir/test_filter_map.vim @@ -221,6 +221,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() @@ -231,6 +241,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() diff --git a/src/version.c b/src/version.c index 8e19f05c63..197d25deeb 100644 --- a/src/version.c +++ b/src/version.c @@ -724,6 +724,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1667, /**/ 1666, /**/