diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2024-03-10 19:22:38 +0100 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-03-10 19:22:38 +0100 |
commit | fa6300872732f80b770a768e785ae2b189d3e684 (patch) | |
tree | 1b4fb4b87703ae09111cdae43d56543f8b8d49be /src/testdir | |
parent | 26dd09ad5e86f4e2179be0181421bfab9a6b3b75 (diff) |
patch 9.1.0165: Vim9: Importing an autoload imported script failsv9.1.0165
Problem: Vim9: Importing an autoload imported script fails
(Song-Tianxiang)
Solution: Return the script ID in this case
(Yegappan Lakshmanan)
fixes: #14171
closes: #14174
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/test_vim9_import.vim | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_import.vim b/src/testdir/test_vim9_import.vim index d470a34675..fa1aeb10e8 100644 --- a/src/testdir/test_vim9_import.vim +++ b/src/testdir/test_vim9_import.vim @@ -2929,5 +2929,54 @@ def Test_export_in_conditional_block() v9.CheckScriptSuccess(lines) enddef +" Import fails when an autoloaded script is imported again. +" Github issue #14171 +def Test_import_autloaded_script() + mkdir('Ximporttwice', 'pR') + mkdir('Ximporttwice/plugin') + mkdir('Ximporttwice/autoload') + var save_rtp = &rtp + exe 'set rtp^=' .. getcwd() .. '/Ximporttwice' + + var lines =<< trim END + vim9script + + export def H(): number + return 10 + enddef + END + writefile(lines, 'Ximporttwice/autoload/hello.vim') + + lines =<< trim END + vim9script + + import "./hello.vim" + export def W(): number + return 20 + enddef + END + writefile(lines, 'Ximporttwice/autoload/world.vim') + + lines =<< trim END + vim9script + + import autoload '../autoload/hello.vim' + import autoload '../autoload/world.vim' + + command Hello echo hello.H() + command World echo world.W() + END + writefile(lines, 'Ximporttwice/plugin/main.vim') + + lines =<< trim END + vim9script + + source ./Ximporttwice/plugin/main.vim + assert_equal(['20'], execute('World')->split("\n")) + END + v9.CheckScriptSuccess(lines) + + &rtp = save_rtp +enddef " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker |