patch 8.2.2162: Vim9: Cannot load or store autoload variables
Problem: Vim9: Cannot load or store autoload variables.
Solution: Add ISN_LOADAUTO and ISN_STOREAUTO. (closes #7485)
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 2f651cd..5949acb 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -2779,10 +2779,34 @@
quit
enddef
-" test using a vim9script that is auto-loaded from an autocmd
+" test using an auto-loaded function and variable
def Test_vim9_autoload()
var lines =<< trim END
vim9script
+ def some#gettest(): string
+ return 'test'
+ enddef
+ g:some#name = 'name'
+ END
+
+ mkdir('Xdir/autoload', 'p')
+ writefile(lines, 'Xdir/autoload/some.vim')
+ var save_rtp = &rtp
+ exe 'set rtp^=' .. getcwd() .. '/Xdir'
+
+ assert_equal('test', g:some#gettest())
+ assert_equal('name', g:some#name)
+ g:some#other = 'other'
+ assert_equal('other', g:some#other)
+
+ delete('Xdir', 'rf')
+ &rtp = save_rtp
+enddef
+
+" test using a vim9script that is auto-loaded from an autocmd
+def Test_vim9_aucmd_autoload()
+ var lines =<< trim END
+ vim9script
def foo#test()
echomsg getreg('"')
enddef
@@ -2842,6 +2866,12 @@
delete('Xdidit')
delete('Xscript')
delete('Xruntime', 'rf')
+
+ lines =<< trim END
+ vim9script
+ var foo#bar = 'asdf'
+ END
+ CheckScriptFailure(lines, 'E461: Illegal variable name: foo#bar', 2)
enddef
def Test_script_var_in_autocmd()