patch 8.2.3339: Vim9: cannot lock a member in a local dict
Problem: Vim9: cannot lock a member in a local dict.
Solution: Get the local dict from the stack and pass it to get_lval().
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 1d1730e..15a68dd 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -588,6 +588,25 @@
res)
enddef
+def s:LockLocal()
+ var d = {a: 1}
+ lockvar d.a
+enddef
+
+def Test_disassemble_locl_local()
+ var res = execute('disass s:LockLocal')
+ assert_match('<SNR>\d*_LockLocal\_s*' ..
+ 'var d = {a: 1}\_s*' ..
+ '\d PUSHS "a"\_s*' ..
+ '\d PUSHNR 1\_s*' ..
+ '\d NEWDICT size 1\_s*' ..
+ '\d STORE $0\_s*' ..
+ 'lockvar d.a\_s*' ..
+ '\d LOAD $0\_s*' ..
+ '\d LOCKUNLOCK lockvar d.a\_s*',
+ res)
+enddef
+
def s:ScriptFuncTry()
try
echo "yes"