Problem: Vim9: cannot list a lambda function.
Solution: Support the <lambda>9 notation, like :disassemble. (closes #7634)
Line_continuation_in_lambda()->assert_equal(['D', 'C', 'B', 'A'])
enddef
+def Test_list_lambda()
+ timer_start(1000, (_) => 0)
+ var body = execute(timer_info()[0].callback
+ ->string()
+ ->substitute("('", ' ', '')
+ ->substitute("')", '', '')
+ ->substitute('function\zs', ' ', ''))
+ assert_match('def <lambda>\d\+(_: any, ...): number\n1 return 0\n enddef', body)
+enddef
+
func Test_silent_echo()
CheckScreendump
}
else
{
- name = trans_function_name(&p, &is_global, eap->skip,
+ if (STRNCMP(p, "<lambda>", 8) == 0)
+ {
+ p += 8;
+ (void)getdigits(&p);
+ name = vim_strnsave(eap->arg, p - eap->arg);
+ CLEAR_FIELD(fudi);
+ }
+ else
+ name = trans_function_name(&p, &is_global, eap->skip,
TFN_NO_AUTOLOAD, &fudi, NULL, NULL);
paren = (vim_strchr(p, '(') != NULL);
if (name == NULL && (fudi.fd_dict == NULL || !paren) && !eap->skip)
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 2316,
/**/
2315,
/**/