diff src/testdir/test_listdict.vim @ 27457:4c16acb2525f v8.2.4257

patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent Commit: https://github.com/vim/vim/commit/62aec93bfdb9e1b40d03a6d2e8e9511f8b1bdb2d Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 29 21:45:34 2022 +0000 patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent Problem: Vim9: finding global function without g: prefix but not finding global variable is inconsistent. Solution: Require using g: for a global function. Change the vim9.vim script into a Vim9 script with exports. Fix that import in legacy script does not work.
author Bram Moolenaar <Bram@vim.org>
date Sat, 29 Jan 2022 23:00:05 +0100
parents 31c23760d590
children efbce802c0df
line wrap: on
line diff
--- a/src/testdir/test_listdict.vim
+++ b/src/testdir/test_listdict.vim
@@ -1,7 +1,7 @@
 " Tests for the List and Dict types
 scriptencoding utf-8
 
-source vim9.vim
+import './vim9.vim' as v9
 
 func TearDown()
   " Run garbage collection after every test
@@ -50,7 +50,7 @@ func Test_list_slice()
       call assert_equal([2], l[-1 : -1])
       call assert_equal([1, 2], l[-2 : -1])
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   let l = [1, 2]
   call assert_equal([], l[-3 : -1])
@@ -59,7 +59,7 @@ func Test_list_slice()
       var l = [1, 2]
       assert_equal([1, 2], l[-3 : -1])
   END
-  call CheckDefAndScriptSuccess(lines)
+  call v9.CheckDefAndScriptSuccess(lines)
 endfunc
 
 " List identity
@@ -75,7 +75,7 @@ func Test_list_identity()
       call assert_false(l is lx)
       call assert_true(l isnot lx)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 " removing items with :unlet
@@ -118,7 +118,7 @@ func Test_list_unlet()
       unlet l[-6 : 2]
       call assert_equal([3], l)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   let l = [0, 1, 2, 3]
   unlet l[2:2]
@@ -131,13 +131,13 @@ func Test_list_unlet()
       VAR l = [0, 1, 2, 3]
       unlet l[2 : 1]
   END
-  call CheckLegacyAndVim9Failure(lines, 'E684:')
+  call v9.CheckLegacyAndVim9Failure(lines, 'E684:')
 
   let lines =<< trim END
       VAR l = [0, 1, 2, 3]
       unlet l[-1 : 2]
   END
-  call CheckLegacyAndVim9Failure(lines, 'E684:')
+  call v9.CheckLegacyAndVim9Failure(lines, 'E684:')
 endfunc
 
 " assignment to a list
@@ -149,35 +149,35 @@ func Test_list_assign()
       LET [va, vb] = l[2 : 3]
       call assert_equal([2, 3], [va, vb])
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   let lines =<< trim END
       let l = [0, 1, 2, 3]
       let [va, vb] = l
   END
-  call CheckScriptFailure(lines, 'E687:')
+  call v9.CheckScriptFailure(lines, 'E687:')
   let lines =<< trim END
       var l = [0, 1, 2, 3]
       var va = 0
       var vb = 0
       [va, vb] = l
   END
-  call CheckScriptFailure(['vim9script'] + lines, 'E687:')
-  call CheckDefExecFailure(lines, 'E1093: Expected 2 items but got 4')
+  call v9.CheckScriptFailure(['vim9script'] + lines, 'E687:')
+  call v9.CheckDefExecFailure(lines, 'E1093: Expected 2 items but got 4')
 
   let lines =<< trim END
       let l = [0, 1, 2, 3]
       let [va, vb] = l[1:1]
   END
-  call CheckScriptFailure(lines, 'E688:')
+  call v9.CheckScriptFailure(lines, 'E688:')
   let lines =<< trim END
       var l = [0, 1, 2, 3]
       var va = 0
       var vb = 0
       [va, vb] = l[1 : 1]
   END
-  call CheckScriptFailure(['vim9script'] + lines, 'E688:')
-  call CheckDefExecFailure(lines, 'E1093: Expected 2 items but got 1')
+  call v9.CheckScriptFailure(['vim9script'] + lines, 'E688:')
+  call v9.CheckDefExecFailure(lines, 'E1093: Expected 2 items but got 1')
 endfunc
 
 " test for range assign
@@ -189,13 +189,13 @@ func Test_list_range_assign()
       LET l[-4 : -1] = [5, 6]
       call assert_equal([5, 6], l)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   let lines =<< trim END
     var l = [7]
     l[:] = ['text']
   END
-  call CheckDefAndScriptFailure(lines, 'E1012:', 2)
+  call v9.CheckDefAndScriptFailure(lines, 'E1012:', 2)
 endfunc
 
 " Test removing items in list
@@ -227,7 +227,7 @@ func Test_list_func_remove()
       call assert_equal([2, 3], remove(l, -3, -2))
       call assert_equal([1, 4], l)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   " Test invalid cases
   let l = [1, 2, 3, 4]
@@ -251,7 +251,7 @@ func Test_list_add()
       call add(l, test_null_dict())
       call assert_equal([1, [2, 3], [], [], {'k': 3}, {}, {}], l)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   " weird legacy behavior
   call assert_equal(1, add(test_null_list(), 4))
@@ -271,7 +271,7 @@ func Test_dict()
       call extend(d, {'b': 'bbb', 'c': 'ccc'}, "keep")
       call assert_equal({'c': 'ccc', '1': 99, 'b': [1, 2, function('strlen')], '3': 33, '-1': {'a': 1}}, d)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}
   call assert_equal("{'1': 'asd', 'b': [1, 2, function('strlen')], '-1': {'a': 1}}", string(d))
@@ -320,7 +320,7 @@ func Test_dict_identity()
       call assert_false(d is dx)
       call assert_true(d isnot dx)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 " removing items with :unlet
@@ -331,7 +331,7 @@ func Test_dict_unlet()
       unlet d[-1]
       call assert_equal({'1': 99, '3': 33}, d)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 " manipulating a big Dictionary (hashtable.c has a border of 1000 entries)
@@ -405,24 +405,24 @@ func Test_dict_assign()
       LET d._ = 2
       call assert_equal({'a': 1, '_': 2}, d)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   let lines =<< trim END
     let n = 0
     let n.key = 3
   END
-  call CheckScriptFailure(lines, 'E1203: Dot can only be used on a dictionary: n.key = 3')
+  call v9.CheckScriptFailure(lines, 'E1203: Dot can only be used on a dictionary: n.key = 3')
   let lines =<< trim END
     vim9script
     var n = 0
     n.key = 3
   END
-  call CheckScriptFailure(lines, 'E1203: Dot can only be used on a dictionary: n.key = 3')
+  call v9.CheckScriptFailure(lines, 'E1203: Dot can only be used on a dictionary: n.key = 3')
   let lines =<< trim END
     var n = 0
     n.key = 3
   END
-  call CheckDefFailure(lines, 'E1141:')
+  call v9.CheckDefFailure(lines, 'E1141:')
 endfunc
 
 " Function in script-local List or Dict
@@ -444,55 +444,55 @@ func Test_dict_func_remove()
       call assert_equal('b', remove(d, 2))
       call assert_equal({1: 'a', 3: 'c'}, d)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   let lines =<< trim END
       VAR d = {1: 'a', 3: 'c'}
       call remove(d, 1, 2)
   END
-  call CheckLegacyAndVim9Failure(lines, 'E118:')
+  call v9.CheckLegacyAndVim9Failure(lines, 'E118:')
 
   let lines =<< trim END
       VAR d = {1: 'a', 3: 'c'}
       call remove(d, 'a')
   END
-  call CheckLegacyAndVim9Failure(lines, 'E716:')
+  call v9.CheckLegacyAndVim9Failure(lines, 'E716:')
 
   let lines =<< trim END
       let d = {'a-b': 55}
       echo d.a-b
   END
-  call CheckScriptFailure(lines, 'E716: Key not present in Dictionary: "a"')
+  call v9.CheckScriptFailure(lines, 'E716: Key not present in Dictionary: "a"')
 
   let lines =<< trim END
       vim9script
       var d = {'a-b': 55}
       echo d.a-b
   END
-  call CheckScriptFailure(lines, 'E716: Key not present in Dictionary: "a"')
+  call v9.CheckScriptFailure(lines, 'E716: Key not present in Dictionary: "a"')
 
   let lines =<< trim END
       var d = {'a-b': 55}
       echo d.a-b
   END
-  call CheckDefFailure(lines, 'E1004: White space required before and after ''-''')
+  call v9.CheckDefFailure(lines, 'E1004: White space required before and after ''-''')
 
   let lines =<< trim END
       let d = {1: 'a', 3: 'c'}
       call remove(d, [])
   END
-  call CheckScriptFailure(lines, 'E730:')
+  call v9.CheckScriptFailure(lines, 'E730:')
   let lines =<< trim END
       vim9script
       var d = {1: 'a', 3: 'c'}
       call remove(d, [])
   END
-  call CheckScriptFailure(lines, 'E1220: String or Number required for argument 2')
+  call v9.CheckScriptFailure(lines, 'E1220: String or Number required for argument 2')
   let lines =<< trim END
       var d = {1: 'a', 3: 'c'}
       call remove(d, [])
   END
-  call CheckDefExecFailure(lines, 'E1013: Argument 2: type mismatch, expected string but got list<unknown>')
+  call v9.CheckDefExecFailure(lines, 'E1013: Argument 2: type mismatch, expected string but got list<unknown>')
 endfunc
 
 " Nasty: remove func from Dict that's being called (works)
@@ -514,8 +514,8 @@ func Test_dict_func_remove_in_use()
       VAR expected = 'a:' .. string(get(d, 'func'))
       call assert_equal(expected, d.func(string(remove(d, 'func'))))
   END
-  call CheckTransLegacySuccess(lines)
-  call CheckTransVim9Success(lines)
+  call v9.CheckTransLegacySuccess(lines)
+  call v9.CheckTransVim9Success(lines)
 endfunc
 
 func Test_dict_literal_keys()
@@ -535,7 +535,7 @@ func Test_dict_deepcopy()
       VAR dc = deepcopy(d)
       call deepcopy(d, 1)
   END
-  call CheckLegacyAndVim9Failure(lines, 'E698:')
+  call v9.CheckLegacyAndVim9Failure(lines, 'E698:')
 
   let lines =<< trim END
       VAR d = {1: 1, 2: '2'}
@@ -546,7 +546,7 @@ func Test_dict_deepcopy()
       VAR l3 = deepcopy(l2)
       call assert_true(l3[1] is l3[2])
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   call assert_fails("call deepcopy([1, 2], 2)", 'E1023:')
 endfunc
@@ -631,8 +631,8 @@ func Test_list_locked_var()
         endfor
       endfor
   END
-  call CheckTransLegacySuccess(lines)
-  call CheckTransVim9Success(lines)
+  call v9.CheckTransLegacySuccess(lines)
+  call v9.CheckTransVim9Success(lines)
 
   call assert_fails("let x=islocked('a b')", 'E488:')
   let mylist = [1, 2, 3]
@@ -745,7 +745,7 @@ func Test_dict_item_lock_unlet()
       unlet d.a
       call assert_equal({'b': 100}, d)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 " filter() after lock on dict item
@@ -756,7 +756,7 @@ func Test_dict_lock_filter()
       call filter(d, 'v:key != "a"')
       call assert_equal({'b': 100}, d)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 " map() after lock on dict
@@ -768,8 +768,8 @@ func Test_dict_lock_map()
       call assert_equal({'a': 299, 'b': 300}, d)
   END
   " This won't work in a :def function
-  call CheckTransLegacySuccess(lines)
-  call CheckTransVim9Success(lines)
+  call v9.CheckTransLegacySuccess(lines)
+  call v9.CheckTransVim9Success(lines)
 
   " For a :def function use a global dict.
   let lines =<< trim END
@@ -780,7 +780,7 @@ func Test_dict_lock_map()
       enddef
       call Delkey()
   END
-  call CheckScriptFailure(lines, 'E741:')
+  call v9.CheckScriptFailure(lines, 'E741:')
 endfunc
 
 " Lock one item in a list
@@ -792,8 +792,8 @@ func Test_list_item_lock_map()
       call assert_equal([299, 100, 101], l)
   END
   " This won't work in a :def function
-  call CheckTransLegacySuccess(lines)
-  call CheckTransVim9Success(lines)
+  call v9.CheckTransLegacySuccess(lines)
+  call v9.CheckTransVim9Success(lines)
 endfunc
 
 " Lock one item in a dict
@@ -805,8 +805,8 @@ func Test_dict_item_lock_map()
       call assert_equal({'a': 299, 'b': 100, 'c': 101}, d)
   END
   " This won't work in a :def function
-  call CheckTransLegacySuccess(lines)
-  call CheckTransVim9Success(lines)
+  call v9.CheckTransLegacySuccess(lines)
+  call v9.CheckTransVim9Success(lines)
 endfunc
 
 " No extend() after lock on dict item
@@ -885,7 +885,7 @@ func Test_let_lock_list()
       lockvar! l
       call TryUnletListItem(l)
   END
-  call CheckScriptFailure(lines, 'E741:')
+  call v9.CheckScriptFailure(lines, 'E741:')
   unlet g:l
 endfunc
 
@@ -954,7 +954,7 @@ func Test_reverse_sort_uniq()
         call assert_equal(['BAR', 'Bar', 'FOO', 'FOOBAR', 'Foo', 'bar', 'foo', -1, 0, 0, 0.22, 1.0e-15, 12, 18, 22, 255, 7, 9, [], {}], sort(copy(l)))
       endif
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   call assert_fails('call reverse("")', 'E899:')
   call assert_fails('call uniq([1, 2], {x, y -> []})', 'E745:')
@@ -997,7 +997,7 @@ func Test_reduce()
       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, test_null_string()))
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   call assert_equal({'x': 1, 'y': 1, 'z': 1 }, ['x', 'y', 'z']->reduce({ acc, val -> extend(acc, { val: 1 }) }, {}))
   vim9 assert_equal({'x': 1, 'y': 1, 'z': 1 }, ['x', 'y', 'z']->reduce((acc, val) => extend(acc, {[val]: 1 }), {}))
@@ -1055,7 +1055,7 @@ func Test_str_split()
       call assert_equal(['', 'a', '', 'b', '', 'c', ''], split('abc', '\zs', 1))
       call assert_equal(['abc'], split('abc', '\\%('))
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   call assert_fails("call split('abc', [])", 'E730:')
   call assert_fails("call split('abc', 'b', [])", 'E745:')
@@ -1072,7 +1072,7 @@ func Test_listdict_compare()
       call assert_false(l != deepcopy(l))
       call assert_false(d != deepcopy(d))
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   " comparison errors
   call assert_fails('echo [1, 2] =~ {}', 'E691:')
@@ -1093,7 +1093,7 @@ func Test_listdict_compare_complex()
       call assert_true(l == lcopy)
       call assert_true(dict4 == dict4copy)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 " Test for extending lists and dictionaries
@@ -1130,7 +1130,7 @@ func Test_listdict_extend()
       call extend(l, [4, 5, 6], -3)
       call assert_equal([4, 5, 6, 1, 2,  3], l)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   let l = [1, 2, 3]
   call assert_fails("call extend(l, [4, 5, 6], 4)", 'E684:')
@@ -1159,7 +1159,7 @@ func Test_listdict_extend()
       call extend(d, {'b': 0, 'c': 'C'}, "keep")
       call assert_equal({'a': 'A', 'b': 9, 'c': 'C'}, d)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   let d = {'a': 'A', 'b': 'B'}
   call assert_fails("call extend(d, {'b': 0, 'c':'C'}, 'error')", 'E737:')
@@ -1191,7 +1191,7 @@ func Test_listdict_extend()
       call extend(l, l, 3)
       call assert_equal([1, 5, 7, 1, 5, 7], l)
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 endfunc
 
 func Test_listdict_extendnew()
@@ -1318,30 +1318,30 @@ endfunc
 
 " List and dict indexing tests
 func Test_listdict_index()
-  call CheckLegacyAndVim9Failure(['echo function("min")[0]'], 'E695:')
-  call CheckLegacyAndVim9Failure(['echo v:true[0]'], 'E909:')
-  call CheckLegacyAndVim9Failure(['echo v:null[0]'], 'E909:')
-  call CheckLegacyAndVim9Failure(['VAR d = {"k": 10}', 'echo d.'], ['E15:', 'E1127:', 'E15:'])
-  call CheckLegacyAndVim9Failure(['VAR d = {"k": 10}', 'echo d[1 : 2]'], 'E719:')
+  call v9.CheckLegacyAndVim9Failure(['echo function("min")[0]'], 'E695:')
+  call v9.CheckLegacyAndVim9Failure(['echo v:true[0]'], 'E909:')
+  call v9.CheckLegacyAndVim9Failure(['echo v:null[0]'], 'E909:')
+  call v9.CheckLegacyAndVim9Failure(['VAR d = {"k": 10}', 'echo d.'], ['E15:', 'E1127:', 'E15:'])
+  call v9.CheckLegacyAndVim9Failure(['VAR d = {"k": 10}', 'echo d[1 : 2]'], 'E719:')
 
   call assert_fails("let v = [4, 6][{-> 1}]", 'E729:')
-  call CheckDefAndScriptFailure(['var v = [4, 6][() => 1]'], ['E1012', 'E703:'])
+  call v9.CheckDefAndScriptFailure(['var v = [4, 6][() => 1]'], ['E1012', 'E703:'])
 
-  call CheckLegacyAndVim9Failure(['VAR v = range(5)[2 : []]'], ['E730:', 'E1012:', 'E730:'])
+  call v9.CheckLegacyAndVim9Failure(['VAR v = range(5)[2 : []]'], ['E730:', 'E1012:', 'E730:'])
 
   call assert_fails("let v = range(5)[2:{-> 2}(]", ['E15:', 'E116:'])
-  call CheckDefAndScriptFailure(['var v = range(5)[2 : () => 2(]'], 'E15:')
+  call v9.CheckDefAndScriptFailure(['var v = range(5)[2 : () => 2(]'], 'E15:')
 
-  call CheckLegacyAndVim9Failure(['VAR v = range(5)[2 : 3'], ['E111:', 'E1097:', 'E111:'])
-  call CheckLegacyAndVim9Failure(['VAR l = insert([1, 2, 3], 4, 10)'], 'E684:')
-  call CheckLegacyAndVim9Failure(['VAR l = insert([1, 2, 3], 4, -10)'], 'E684:')
-  call CheckLegacyAndVim9Failure(['VAR l = insert([1, 2, 3], 4, [])'], ['E745:', 'E1013:', 'E1210:'])
+  call v9.CheckLegacyAndVim9Failure(['VAR v = range(5)[2 : 3'], ['E111:', 'E1097:', 'E111:'])
+  call v9.CheckLegacyAndVim9Failure(['VAR l = insert([1, 2, 3], 4, 10)'], 'E684:')
+  call v9.CheckLegacyAndVim9Failure(['VAR l = insert([1, 2, 3], 4, -10)'], 'E684:')
+  call v9.CheckLegacyAndVim9Failure(['VAR l = insert([1, 2, 3], 4, [])'], ['E745:', 'E1013:', 'E1210:'])
 
-  call CheckLegacyAndVim9Failure(['VAR l = [1, 2, 3]', 'LET l[i] = 3'], ['E121:', 'E1001:', 'E121:'])
-  call CheckLegacyAndVim9Failure(['VAR l = [1, 2, 3]', 'LET l[1.1] = 4'], ['E805:', 'E1012:', 'E805:'])
-  call CheckLegacyAndVim9Failure(['VAR l = [1, 2, 3]', 'LET l[: i] = [4, 5]'], ['E121:', 'E1001:', 'E121:'])
-  call CheckLegacyAndVim9Failure(['VAR l = [1, 2, 3]', 'LET l[: 3.2] = [4, 5]'], ['E805:', 'E1012:', 'E805:'])
-  call CheckLegacyAndVim9Failure(['VAR t = test_unknown()', 'echo t[0]'], 'E685:')
+  call v9.CheckLegacyAndVim9Failure(['VAR l = [1, 2, 3]', 'LET l[i] = 3'], ['E121:', 'E1001:', 'E121:'])
+  call v9.CheckLegacyAndVim9Failure(['VAR l = [1, 2, 3]', 'LET l[1.1] = 4'], ['E805:', 'E1012:', 'E805:'])
+  call v9.CheckLegacyAndVim9Failure(['VAR l = [1, 2, 3]', 'LET l[: i] = [4, 5]'], ['E121:', 'E1001:', 'E121:'])
+  call v9.CheckLegacyAndVim9Failure(['VAR l = [1, 2, 3]', 'LET l[: 3.2] = [4, 5]'], ['E805:', 'E1012:', 'E805:'])
+  call v9.CheckLegacyAndVim9Failure(['VAR t = test_unknown()', 'echo t[0]'], 'E685:')
 endfunc
 
 " Test for a null list
@@ -1379,7 +1379,7 @@ func Test_null_list()
       call assert_equal([], sort(l))
       call assert_equal('[]', string(l))
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   let l = test_null_list()
   call assert_equal([], extend(l, l, 0))
@@ -1420,7 +1420,7 @@ func Test_null_dict()
       call assert_equal(0, remove(test_null_dict(), 'k'))
       call assert_equal('{}', string(d))
   END
-  call CheckLegacyAndVim9Success(lines)
+  call v9.CheckLegacyAndVim9Success(lines)
 
   let d = test_null_dict()
   call assert_equal({}, extend(d, d, 'keep'))