patch 8.2.1250: Vim9: cannot use the g:, b:, t: and w: namespaces
Problem: Vim9: cannot use the g:, b:, t: and w: namespaces.
Solution: Add instructions to push a dict for the namespaces. (closes #6480)
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 3448d85..98a9e20 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -21,9 +21,13 @@
echo v:version
echo s:scriptvar
echo g:globalvar
+ echo get(g:, "global")
echo b:buffervar
+ echo get(b:, "buffer")
echo w:windowvar
+ echo get(w:, "window")
echo t:tabpagevar
+ echo get(t:, "tab")
echo &tabstop
echo $ENVVAR
echo @z
@@ -47,9 +51,25 @@
' LOADV v:version.*' ..
' LOADS s:scriptvar from .*test_vim9_disassemble.vim.*' ..
' LOADG g:globalvar.*' ..
+ 'echo get(g:, "global")\_s*' ..
+ '\d\+ LOAD g:\_s*' ..
+ '\d\+ PUSHS "global"\_s*' ..
+ '\d\+ BCALL get(argc 2).*' ..
' LOADB b:buffervar.*' ..
+ 'echo get(b:, "buffer")\_s*' ..
+ '\d\+ LOAD b:\_s*' ..
+ '\d\+ PUSHS "buffer"\_s*' ..
+ '\d\+ BCALL get(argc 2).*' ..
' LOADW w:windowvar.*' ..
+ 'echo get(w:, "window")\_s*' ..
+ '\d\+ LOAD w:\_s*' ..
+ '\d\+ PUSHS "window"\_s*' ..
+ '\d\+ BCALL get(argc 2).*' ..
' LOADT t:tabpagevar.*' ..
+ 'echo get(t:, "tab")\_s*' ..
+ '\d\+ LOAD t:\_s*' ..
+ '\d\+ PUSHS "tab"\_s*' ..
+ '\d\+ BCALL get(argc 2).*' ..
' LOADENV $ENVVAR.*' ..
' LOADREG @z.*',
res)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index de88ea7..7feec38 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1345,6 +1345,32 @@
assert_equal('register a', @a)
enddef
+def Test_expr7_namespace()
+ g:some_var = 'some'
+ assert_equal('some', get(g:, 'some_var'))
+ assert_equal('some', get(g:, 'some_var', 'xxx'))
+ assert_equal('xxx', get(g:, 'no_var', 'xxx'))
+ unlet g:some_var
+
+ b:some_var = 'some'
+ assert_equal('some', get(b:, 'some_var'))
+ assert_equal('some', get(b:, 'some_var', 'xxx'))
+ assert_equal('xxx', get(b:, 'no_var', 'xxx'))
+ unlet b:some_var
+
+ w:some_var = 'some'
+ assert_equal('some', get(w:, 'some_var'))
+ assert_equal('some', get(w:, 'some_var', 'xxx'))
+ assert_equal('xxx', get(w:, 'no_var', 'xxx'))
+ unlet w:some_var
+
+ t:some_var = 'some'
+ assert_equal('some', get(t:, 'some_var'))
+ assert_equal('some', get(t:, 'some_var', 'xxx'))
+ assert_equal('xxx', get(t:, 'no_var', 'xxx'))
+ unlet t:some_var
+enddef
+
def Test_expr7_parens()
# (expr)
assert_equal(4, (6 * 4) / 6)