diff options
author | Bram Moolenaar <Bram@vim.org> | 2022-02-22 20:43:36 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-02-22 20:43:36 +0000 |
commit | afa048f0d4b5d63f2192c9ba340a9eb8b0822985 (patch) | |
tree | 1ee615badc0dc451a01bbe90a887c3d4460dd2d9 /src/testdir/test_vim9_assign.vim | |
parent | fe73255c92b6cb54851f82fa32458340b736298d (diff) |
patch 8.2.4447: Vim9: can still use s:var in a compiled functionv8.2.4447
Problem: Vim9: can still use s:var in a compiled function.
Solution: Disallow using s:var for Vim9 script. (closes #9824)
Diffstat (limited to 'src/testdir/test_vim9_assign.vim')
-rw-r--r-- | src/testdir/test_vim9_assign.vim | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim index 82521c8888..44247add1f 100644 --- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -220,7 +220,7 @@ def Test_assignment() enddef defcompile END - v9.CheckScriptFailure(lines, 'E1089:') + v9.CheckScriptFailure(lines, 'E1268:') g:inc_counter += 1 assert_equal(2, g:inc_counter) @@ -2460,6 +2460,49 @@ def Run_Test_declare_command_line() g:StopVimInTerminal(buf) enddef +def Test_using_s_var_in_function() + var lines =<< trim END + vim9script + var scriptlevel = 123 + def SomeFunc() + echo s:scriptlevel + enddef + SomeFunc() + END + v9.CheckScriptFailure(lines, 'E1268:') + + # OK in legacy script + lines =<< trim END + let s:scriptlevel = 123 + def s:SomeFunc() + echo s:scriptlevel + enddef + call s:SomeFunc() + END + v9.CheckScriptSuccess(lines) + + lines =<< trim END + vim9script + var scriptlevel = 123 + def SomeFunc() + s:scriptlevel = 456 + enddef + SomeFunc() + END + v9.CheckScriptFailure(lines, 'E1268:') + + # OK in legacy script + lines =<< trim END + let s:scriptlevel = 123 + def s:SomeFunc() + s:scriptlevel = 456 + enddef + call s:SomeFunc() + call assert_equal(456, s:scriptlevel) + END + v9.CheckScriptSuccess(lines) +enddef + " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker |