patch 8.2.3353: Vim9: type of argument for negate not checked at compile time
Problem: Vim9: type of argument for negate not checked at compile time.
Solution: Add a compile time check.
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 15a68dd..710c8ee 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -1680,25 +1680,27 @@
enddef
def NegateNumber(): number
- var nr = 9
- var plus = +nr
- var res = -nr
- return res
+ g:nr = 9
+ var plus = +g:nr
+ var minus = -g:nr
+ return minus
enddef
def Test_disassemble_negate_number()
var instr = execute('disassemble NegateNumber')
assert_match('NegateNumber\_s*' ..
- 'var nr = 9\_s*' ..
- '\d STORE 9 in $0\_s*' ..
- 'var plus = +nr\_s*' ..
- '\d LOAD $0\_s*' ..
- '\d CHECKNR\_s*' ..
- '\d STORE $1\_s*' ..
- 'var res = -nr\_s*' ..
- '\d LOAD $0\_s*' ..
+ 'g:nr = 9\_s*' ..
+ '\d PUSHNR 9\_s*' ..
+ '\d STOREG g:nr\_s*' ..
+ 'var plus = +g:nr\_s*' ..
+ '\d LOADG g:nr\_s*' ..
+ '\d CHECKTYPE number stack\[-1\]\_s*' ..
+ '\d STORE $0\_s*' ..
+ 'var minus = -g:nr\_s*' ..
+ '\d LOADG g:nr\_s*' ..
+ '\d CHECKTYPE number stack\[-1\]\_s*' ..
'\d NEGATENR\_s*' ..
- '\d STORE $2\_s*',
+ '\d STORE $1\_s*',
instr)
assert_equal(-9, NegateNumber())
enddef