comparison src/testdir/test_vim9_import.vim @ 34522:a089397c9bc6 v9.1.0165

patch 9.1.0165: Vim9: Importing an autoload imported script fails Commit: https://github.com/vim/vim/commit/fa6300872732f80b770a768e785ae2b189d3e684 Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Sun Mar 10 19:22:38 2024 +0100 patch 9.1.0165: Vim9: Importing an autoload imported script fails 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>
author Christian Brabandt <cb@256bit.org>
date Sun, 10 Mar 2024 19:30:03 +0100
parents c7591e326ded
children a14868d39709
comparison
equal deleted inserted replaced
34521:95a648080001 34522:a089397c9bc6
2927 endif 2927 endif
2928 END 2928 END
2929 v9.CheckScriptSuccess(lines) 2929 v9.CheckScriptSuccess(lines)
2930 enddef 2930 enddef
2931 2931
2932 " Import fails when an autoloaded script is imported again.
2933 " Github issue #14171
2934 def Test_import_autloaded_script()
2935 mkdir('Ximporttwice', 'pR')
2936 mkdir('Ximporttwice/plugin')
2937 mkdir('Ximporttwice/autoload')
2938 var save_rtp = &rtp
2939 exe 'set rtp^=' .. getcwd() .. '/Ximporttwice'
2940
2941 var lines =<< trim END
2942 vim9script
2943
2944 export def H(): number
2945 return 10
2946 enddef
2947 END
2948 writefile(lines, 'Ximporttwice/autoload/hello.vim')
2949
2950 lines =<< trim END
2951 vim9script
2952
2953 import "./hello.vim"
2954 export def W(): number
2955 return 20
2956 enddef
2957 END
2958 writefile(lines, 'Ximporttwice/autoload/world.vim')
2959
2960 lines =<< trim END
2961 vim9script
2962
2963 import autoload '../autoload/hello.vim'
2964 import autoload '../autoload/world.vim'
2965
2966 command Hello echo hello.H()
2967 command World echo world.W()
2968 END
2969 writefile(lines, 'Ximporttwice/plugin/main.vim')
2970
2971 lines =<< trim END
2972 vim9script
2973
2974 source ./Ximporttwice/plugin/main.vim
2975 assert_equal(['20'], execute('World')->split("\n"))
2976 END
2977 v9.CheckScriptSuccess(lines)
2978
2979 &rtp = save_rtp
2980 enddef
2932 2981
2933 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker 2982 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker