patch 8.2.2834: Vim9: :cexpr does not work with local variables
Problem: Vim9: :cexpr does not work with local variables.
Solution: Compile :cexpr.
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index 4c5ede5..18b774c 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -722,6 +722,22 @@
helpclose
enddef
+def Test_vim9_cexpr()
+ var text = 'somefile:95:error'
+ cexpr text
+ var l = getqflist()
+ assert_equal(1, l->len())
+ assert_equal(95, l[0].lnum)
+ assert_equal('error', l[0].text)
+
+ text = 'somefile:77:warning'
+ caddexpr text
+ l = getqflist()
+ assert_equal(2, l->len())
+ assert_equal(77, l[1].lnum)
+ assert_equal('warning', l[1].text)
+enddef
+
func Test_errortitle()
augroup QfBufWinEnter
au!
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index b1c1c18..e7314e4 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -167,6 +167,25 @@
res)
enddef
+def s:Cexpr()
+ var errors = "list of errors"
+ cexpr errors
+enddef
+
+def Test_disassemble_cexpr()
+ var res = execute('disass s:Cexpr')
+ assert_match('<SNR>\d*_Cexpr.*' ..
+ ' var errors = "list of errors"\_s*' ..
+ '\d PUSHS "list of errors"\_s*' ..
+ '\d STORE $0\_s*' ..
+ ' cexpr errors\_s*' ..
+ '\d CEXPR pre cexpr\_s*' ..
+ '\d LOAD $0\_s*' ..
+ '\d CEXPR core cexpr "cexpr errors"\_s*' ..
+ '\d RETURN 0',
+ res)
+enddef
+
def s:YankRange()
norm! m[jjm]
:'[,']yank