diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-03-31 21:07:24 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-03-31 21:07:24 +0200 |
commit | e535db86e76db5e8fcd2fa8ad54050e171e8adc3 (patch) | |
tree | 34938b8ee9c7d723ee06ae49de14e0693c826b95 /src/testdir/test_vim9_script.vim | |
parent | dad4473f02e1fec86d43a2fc094536a4b27d3b25 (diff) |
patch 8.2.2680: Vim9: problem defining a script variable from legacy functionv8.2.2680
Problem: Vim9: problem defining a script variable from legacy function.
Solution: Check if the script is Vim9, not the current syntax.
(closes #8032)
Diffstat (limited to 'src/testdir/test_vim9_script.vim')
-rw-r--r-- | src/testdir/test_vim9_script.vim | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim index 1169c86924..cd8ac091d6 100644 --- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -3220,6 +3220,35 @@ def Test_source_vim9_from_legacy() delete('Xvim9_script.vim') enddef +def Test_declare_script_in_func() + var lines =<< trim END + vim9script + func Declare() + let s:local = 123 + endfunc + Declare() + assert_equal(123, local) + + var error: string + try + local = 'asdf' + catch + error = v:exception + endtry + assert_match('E1012: Type mismatch; expected number but got string', error) + + lockvar local + try + local = 999 + catch + error = v:exception + endtry + assert_match('E741: Value is locked: local', error) + END + CheckScriptSuccess(lines) +enddef + + func Test_vim9script_not_global() " check that items defined in Vim9 script are script-local, not global let vim9lines =<< trim END |