diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-07-07 22:50:12 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-07-07 22:50:12 +0200 |
commit | fe465a01cfbbbae5d870d6108e0ad0947f03b0c4 (patch) | |
tree | 4c56928fbcb0e78d2effc270879792621b399ce1 /src/testdir | |
parent | 0ab55d62012c1fb38c4b540a4233421820a59389 (diff) | |
download | vim-git-fe465a01cfbbbae5d870d6108e0ad0947f03b0c4.tar.gz |
patch 8.2.1152: Vim9: function reference is missing script prefixv8.2.1152
Problem: Vim9: function reference is missing script prefix.
Solution: Use the actual function name instead of the name searched for in
the script context. (closes #6412)
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_vim9_script.vim | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index 726ca9af6..63da00350 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -980,6 +980,39 @@ def Test_vim9script_reload_import() delete('Ximport.vim') enddef +" Not exported function that is referenced needs to be accessed by the +" script-local name. +def Test_vim9script_funcref() + let sortlines =<< trim END + vim9script + def Compare(i1: number, i2: number): number + return 1 + enddef + + export def FastSort(): list<number> + return range(5)->sort(Compare) + enddef + END + writefile(sortlines, 'Xsort.vim') + + let lines =<< trim END + vim9script + import FastSort from './Xsort.vim' + def Test() + g:result = FastSort() + enddef + Test() + END + writefile(lines, 'Xscript.vim') + + source Xscript.vim + assert_equal([4, 3, 2, 1, 0], g:result) + + unlet g:result + delete('Xsort.vim') + delete('Xscript.vim') +enddef + def Test_vim9script_reload_delfunc() let first_lines =<< trim END vim9script |