Mercurial > vim
comparison src/testdir/test_vim9_builtin.vim @ 27841:5ce69c07a106 v8.2.4446
patch 8.2.4446: Vim9: cannot refer to a global function like a local one
Commit: https://github.com/vim/vim/commit/fe73255c92b6cb54851f82fa32458340b736298d
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Feb 22 19:39:13 2022 +0000
patch 8.2.4446: Vim9: cannot refer to a global function like a local one
Problem: Vim9: cannot refer to a global function like a local one.
Solution: When g:name is not a variable but a function, use a function
reference. (closes #9826)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 22 Feb 2022 20:45:04 +0100 |
parents | 0a3ab3216b75 |
children | 780818e65dff |
comparison
equal
deleted
inserted
replaced
27840:a93a7405f2e2 | 27841:5ce69c07a106 |
---|---|
424 | 424 |
425 def Test_call_call() | 425 def Test_call_call() |
426 var l = [3, 2, 1] | 426 var l = [3, 2, 1] |
427 call('reverse', [l]) | 427 call('reverse', [l]) |
428 l->assert_equal([1, 2, 3]) | 428 l->assert_equal([1, 2, 3]) |
429 | |
430 var lines =<< trim END | |
431 vim9script | |
432 def Outer() | |
433 def g:Inner() | |
434 g:done = 'Inner' | |
435 enddef | |
436 call(g:Inner, []) | |
437 enddef | |
438 Outer() | |
439 assert_equal('Inner', g:done) | |
440 unlet g:done | |
441 END | |
442 v9.CheckScriptSuccess(lines) | |
443 delfunc g:Inner | |
429 | 444 |
430 v9.CheckDefExecAndScriptFailure(['call(123, [2])'], 'E1256: String or function required for argument 1') | 445 v9.CheckDefExecAndScriptFailure(['call(123, [2])'], 'E1256: String or function required for argument 1') |
431 v9.CheckDefExecAndScriptFailure(['call(true, [2])'], 'E1256: String or function required for argument 1') | 446 v9.CheckDefExecAndScriptFailure(['call(true, [2])'], 'E1256: String or function required for argument 1') |
432 v9.CheckDefAndScriptFailure(['call("reverse", 2)'], ['E1013: Argument 2: type mismatch, expected list<any> but got number', 'E1211: List required for argument 2']) | 447 v9.CheckDefAndScriptFailure(['call("reverse", 2)'], ['E1013: Argument 2: type mismatch, expected list<any> but got number', 'E1211: List required for argument 2']) |
433 v9.CheckDefAndScriptFailure(['call("reverse", [2], [1])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3']) | 448 v9.CheckDefAndScriptFailure(['call("reverse", [2], [1])'], ['E1013: Argument 3: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 3']) |