diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2024-07-10 08:07:16 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-10 08:07:16 +0800 |
| commit | 545aafbeb80eb52c182ce139800489b392a12d0d (patch) | |
| tree | 580a4c7a0f42bddae3b4577054b8758906d4d631 /test/old/testdir/test_partial.vim | |
| parent | f3c7fb9db176f32606e83eb47cc7549300191d2f (diff) | |
| download | rneovim-545aafbeb80eb52c182ce139800489b392a12d0d.tar.gz rneovim-545aafbeb80eb52c182ce139800489b392a12d0d.tar.bz2 rneovim-545aafbeb80eb52c182ce139800489b392a12d0d.zip | |
vim-patch:9.1.0547: No way to get the arity of a Vim function (#29638)
Problem: No way to get the arity of a Vim function
(Austin Ziegler)
Solution: Enhance get() Vim script function to return the function
argument info using get(func, "arity") (LemonBoy)
fixes: vim/vim#15097
closes: vim/vim#15109
https://github.com/vim/vim/commit/48b7d05a4f88c4326bd5d7a73a523f2d953b3e51
Co-authored-by: LemonBoy <thatlemon@gmail.com>
Diffstat (limited to 'test/old/testdir/test_partial.vim')
| -rw-r--r-- | test/old/testdir/test_partial.vim | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/old/testdir/test_partial.vim b/test/old/testdir/test_partial.vim index 8b62e4a0e5..d049cc9e4b 100644 --- a/test/old/testdir/test_partial.vim +++ b/test/old/testdir/test_partial.vim @@ -284,6 +284,11 @@ func Test_auto_partial_rebind() endfunc func Test_get_partial_items() + func s:Qux(x, y, z=3, w=1, ...) + endfunc + func s:Qux1(x, y) + endfunc + let dict = {'name': 'hello'} let args = ["foo", "bar"] let Func = function('MyDictFunc') @@ -304,6 +309,23 @@ func Test_get_partial_items() let dict = {'partial has': 'no dict'} call assert_equal(dict, get(P, 'dict', dict)) call assert_equal(0, get(l:P, 'dict')) + + call assert_equal({'required': 2, 'optional': 2, 'varargs': v:true}, + \ get(funcref('s:Qux', []), 'arity')) + call assert_equal({'required': 1, 'optional': 2, 'varargs': v:true}, + \ get(funcref('s:Qux', [1]), 'arity')) + call assert_equal({'required': 0, 'optional': 2, 'varargs': v:true}, + \ get(funcref('s:Qux', [1, 2]), 'arity')) + call assert_equal({'required': 0, 'optional': 1, 'varargs': v:true}, + \ get(funcref('s:Qux', [1, 2, 3]), 'arity')) + call assert_equal({'required': 0, 'optional': 0, 'varargs': v:true}, + \ get(funcref('s:Qux', [1, 2, 3, 4]), 'arity')) + " More args than expected is not an error + call assert_equal({'required': 0, 'optional': 0, 'varargs': v:false}, + \ get(funcref('s:Qux1', [1, 2, 3, 4]), 'arity')) + + delfunc s:Qux + delfunc s:Qux1 endfunc func Test_compare_partials() |