summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_vim9_assign.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-02-22 20:43:36 +0000
committerBram Moolenaar <Bram@vim.org>2022-02-22 20:43:36 +0000
commitafa048f0d4b5d63f2192c9ba340a9eb8b0822985 (patch)
tree1ee615badc0dc451a01bbe90a887c3d4460dd2d9 /src/testdir/test_vim9_assign.vim
parentfe73255c92b6cb54851f82fa32458340b736298d (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.vim45
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