call CheckDefFailure(['¬ex += 3'], 'E113:')
call CheckDefFailure(['&ts ..= "xxx"'], 'E1019:')
call CheckDefFailure(['&path += 3'], 'E1013:')
+ " test freeing ISN_STOREOPT
+ call CheckDefFailure(['&ts = 3', 'let asdf'], 'E1022:')
&ts = 8
g:inc_counter += 1
let thechannel: channel
assert_equal(test_null_channel(), thechannel)
endif
+
+ let nr = 1234 | nr = 5678
+ assert_equal(5678, nr)
enddef
func Test_assignment_failure()
func Test_block_failure()
call CheckDefFailure(['{', 'let inner = 1', '}', 'echo inner'], 'E1001:')
+ call CheckDefFailure(['}'], 'E1025:')
+ call CheckDefFailure(['{', 'echo 1'], 'E1026:')
endfunc
+def Test_cmd_modifier()
+ tab echo '0'
+ call CheckDefFailure(['5tab echo 3'], 'E16:')
+enddef
+
+
def ReturnString(): string
return 'string'
enddef
assert_equal('string', MyDefaultArgs())
assert_equal('one', MyDefaultArgs('one'))
assert_fails('call MyDefaultArgs("one", "two")', 'E118:')
+
+ call CheckScriptFailure(['def Func(arg: number = asdf)', 'enddef'], 'E1001:')
enddef
func Test_call_default_args_from_func()
call CheckDefFailure(['catch'], 'E603:')
call CheckDefFailure(['try', 'echo 0', 'catch','catch'], 'E1033:')
call CheckDefFailure(['try', 'echo 0', 'catch /pat'], 'E1067:')
+ call CheckDefFailure(['finally'], 'E606:')
+ call CheckDefFailure(['try', 'echo 0', 'finally', 'echo 1', 'finally'], 'E607:')
+ call CheckDefFailure(['endtry'], 'E602:')
+ call CheckDefFailure(['while 1', 'endtry'], 'E170:')
+ call CheckDefFailure(['for i in range(5)', 'endtry'], 'E170:')
+ call CheckDefFailure(['if 2', 'endtry'], 'E171:')
+ call CheckDefFailure(['try', 'echo 1', 'endtry'], 'E1032:')
+
+ call CheckDefFailure(['throw'], 'E471:')
+ call CheckDefFailure(['throw xxx'], 'E1001:')
enddef
let s:export_script_lines =<< trim END
call CheckDefFailure(['else'], 'E581:')
call CheckDefFailure(['endif'], 'E580:')
call CheckDefFailure(['if true', 'elseif xxx'], 'E1001:')
+ call CheckDefFailure(['if true', 'echo 1'], 'E171:')
enddef
let g:bool_true = v:true
endif
assert_equal(true, res)
+ g:glob = 2
+ if false
+ execute('let g:glob = 3')
+ endif
+ assert_equal(2, g:glob)
+ if true
+ execute('let g:glob = 3')
+ endif
+ assert_equal(3, g:glob)
+
res = false
if g:bool_true ? true : false
res = true
execute cmd_first .. cmd_last
assert_equal('execute-var-var', getline(1))
bwipe!
+
+ call CheckDefFailure(['execute xxx'], 'E1001:')
enddef
def Test_echo_cmd()
- echo 'something'
+ echo 'some'
+ echon 'thing'
assert_match('^something$', Screenline(&lines))
let str1 = 'some'
call CheckDefFailure(['for i in "text"'], 'E1024:')
call CheckDefFailure(['for i in xxx'], 'E1001:')
call CheckDefFailure(['endfor'], 'E588:')
+ call CheckDefFailure(['for i in range(3)', 'echo 3'], 'E170:')
enddef
def Test_while_loop()
call CheckDefFailure(['if true', 'continue'], 'E586:')
call CheckDefFailure(['break'], 'E587:')
call CheckDefFailure(['if true', 'break'], 'E587:')
+ call CheckDefFailure(['while 1', 'echo 3'], 'E170:')
enddef
def Test_interrupt_loop()
assert_true(caught, 'should have caught an exception')
enddef
-def Test_substitute_cmd()
- new
- setline(1, 'something')
- :substitute(some(other(
- assert_equal('otherthing', getline(1))
- bwipe!
-
- " also when the context is Vim9 script
- let lines =<< trim END
- vim9script
- new
- setline(1, 'something')
- :substitute(some(other(
- assert_equal('otherthing', getline(1))
- bwipe!
- END
- writefile(lines, 'Xvim9lines')
- source Xvim9lines
-
- delete('Xvim9lines')
-enddef
-
def Test_redef_failure()
call writefile(['def Func0(): string', 'return "Func0"', 'enddef'], 'Xdef')
so Xdef
call delete('Xinvalidarg')
endfunc
+" Keep this last, it messes up highlighting.
+def Test_substitute_cmd()
+ new
+ setline(1, 'something')
+ :substitute(some(other(
+ assert_equal('otherthing', getline(1))
+ bwipe!
+
+ " also when the context is Vim9 script
+ let lines =<< trim END
+ vim9script
+ new
+ setline(1, 'something')
+ :substitute(some(other(
+ assert_equal('otherthing', getline(1))
+ bwipe!
+ END
+ writefile(lines, 'Xvim9lines')
+ source Xvim9lines
+
+ delete('Xvim9lines')
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker