" Test for lambda and closure
source check.vim
+import './vim9.vim' as v9
func Test_lambda_feature()
call assert_equal(1, has('lambda'))
call assert_true(s:n > m)
endfunc
+func Test_lambda_vim9cmd_linebreak()
+ CheckFeature timers
+
+ let lines =<< trim END
+ vim9cmd call timer_start(10, (x) => {
+ # comment
+ g:result = 'done'
+ })
+ END
+ call v9.CheckScriptSuccess(lines)
+ sleep 50m
+ call assert_equal('done', g:result)
+ unlet g:result
+endfunc
+
func Test_lambda_with_partial()
let l:Cb = function({... -> ['zero', a:1, a:2, a:3]}, ['one', 'two'])
call assert_equal(['zero', 'one', 'two', 'three'], l:Cb('three'))
}
if (eap->skip)
--emsg_skip;
- clear_evalarg(&evalarg, eap);
// When inside :try we need to check for following "| catch" or "| endtry".
// Not when there was an error, but do check if an exception was thrown.
else
set_nextcmd(eap, arg);
}
+ // Must be after using "arg", it may point into memory cleared here.
+ clear_evalarg(&evalarg, eap);
end:
dict_unref(fudi.fd_dict);