g:var_uninit = var
var = 'text'
g:var_test = var
+ " prefixing s: is optional
+ s:var = 'prefixed'
+ g:var_prefixed = s:var
+
+ let s:other: number
+ other = 1234
+ g:other_var = other
END
CheckScriptSuccess(lines)
assert_equal('', g:var_uninit)
assert_equal('text', g:var_test)
+ assert_equal('prefixed', g:var_prefixed)
+ assert_equal(1234, g:other_var)
unlet g:var_uninit
unlet g:var_test
+ unlet g:var_prefixed
+ unlet g:other_var
enddef
def Test_let_type_check()
var = 1234
END
CheckScriptFailure(lines, 'E1013:')
+
+ lines =<< trim END
+ vim9script
+ let var:string
+ END
+ CheckScriptFailure(lines, 'E1069:')
enddef
def Test_forward_declaration()
return arg + STRLEN(arg);
}
- for (p = arg + 1; *p != NUL && *p != ':' && eval_isnamec(*p);
- MB_PTR_ADV(p))
- ;
+ for (p = arg + 1; *p != NUL && eval_isnamec(*p); MB_PTR_ADV(p))
+ if (*p == ':' && p != arg + 1)
+ break;
if (*p != ':')
{
emsg(_(e_type_req));
return arg + STRLEN(arg);
}
+ if (!VIM_ISWHITE(p[1]))
+ {
+ semsg(_(e_white_after), ":");
+ return arg + STRLEN(arg);
+ }
name = vim_strnsave(arg, p - arg);
// parse type