summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/errors.h202
-rw-r--r--src/eval.c2
-rw-r--r--src/evalvars.c6
-rw-r--r--src/ex_cmds.c4
-rw-r--r--src/ex_docmd.c2
-rw-r--r--src/globals.h2
-rw-r--r--src/match.c2
-rw-r--r--src/scriptfile.c2
-rw-r--r--src/testdir/test_vim9_disassemble.vim2
-rw-r--r--src/testdir/test_vim9_expr.vim42
-rw-r--r--src/testdir/test_vim9_func.vim42
-rw-r--r--src/testdir/test_vim9_script.vim24
-rw-r--r--src/userfunc.c16
-rw-r--r--src/version.c2
-rw-r--r--src/vim9compile.c126
-rw-r--r--src/vim9execute.c24
-rw-r--r--src/vim9script.c35
-rw-r--r--src/vim9type.c16
18 files changed, 369 insertions, 182 deletions
diff --git a/src/errors.h b/src/errors.h
index f613276008..6a2e50ee3d 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -11,26 +11,224 @@
*/
#ifdef FEAT_EVAL
+EXTERN char e_undefined_variable_str[]
+ INIT(= N_("E121: Undefined variable: %s"));
+EXTERN char e_undefined_variable_char_str[]
+ INIT(= N_("E121: Undefined variable: %c:%s"));
+#endif
+EXTERN char e_invalid_command[]
+ INIT(= N_("E476: Invalid command"));
+#ifdef FEAT_EVAL
+EXTERN char e_invalid_command_str[]
+ INIT(= N_("E476: Invalid command: %s"));
+EXTERN char e_missing_let_str[]
+ INIT(= N_("E1100: Missing :let: %s"));
+EXTERN char e_variable_not_found_str[]
+ INIT(= N_("E1001: variable not found: %s"));
+EXTERN char e_syntax_error_at_str[]
+ INIT(= N_("E1002: Syntax error at %s"));
+EXTERN char e_missing_return_value[]
+ INIT(= N_("E1003: Missing return value"));
EXTERN char e_white_space_required_before_and_after[]
INIT(= N_("E1004: white space required before and after '%s'"));
+EXTERN char e_too_many_argument_types[]
+ INIT(= N_("E1005: Too many argument types"));
+EXTERN char e_str_is_used_as_argument[]
+ INIT(= N_("E1006: %s is used as an argument"));
+EXTERN char e_mandatory_argument_after_optional_argument[]
+ INIT(= N_("E1007: mandatory argument after optional argument"));
+EXTERN char e_missing_type[]
+ INIT(= N_("E1008: Missing <type>"));
+EXTERN char e_missing_gt_after_type[]
+ INIT(= N_("E1009: Missing > after type"));
+EXTERN char e_type_not_recognized_str[]
+ INIT(= N_("E1010: Type not recognized: %s"));
+EXTERN char e_name_too_long_str[]
+ INIT(= N_("E1011: name too long: %s"));
+EXTERN char e_type_mismatch_expected_str_but_got_str[]
+ INIT(= N_("E1012: type mismatch, expected %s but got %s"));
+EXTERN char e_argument_nr_type_mismatch_expected_str_but_got_str[]
+ INIT(= N_("E1013: argument %d: type mismatch, expected %s but got %s"));
+EXTERN char e_invalid_key_str[]
+ INIT(= N_("E1014: Invalid key: %s"));
+EXTERN char e_name_expected[]
+ INIT(= N_("E1015: Name expected: %s"));
EXTERN char e_cannot_declare_a_scope_variable[]
INIT(= N_("E1016: Cannot declare a %s variable: %s"));
EXTERN char e_cannot_declare_an_environment_variable[]
INIT(= N_("E1016: Cannot declare an environment variable: %s"));
+EXTERN char e_variable_already_declared[]
+ INIT(= N_("E1017: Variable already declared: %s"));
+EXTERN char e_cannot_assign_to_constant[]
+ INIT(= N_("E1018: Cannot assign to a constant: %s"));
+EXTERN char e_can_only_concatenate_to_string[]
+ INIT(= N_("E1019: Can only concatenate to string"));
+EXTERN char e_cannot_use_operator_on_new_variable[]
+ INIT(= N_("E1020: cannot use an operator on a new variable: %s"));
EXTERN char e_const_requires_a_value[]
INIT(= N_("E1021: const requires a value"));
EXTERN char e_type_or_initialization_required[]
INIT(= N_("E1022: type or initialization required"));
+// E1023 unused
+// E1024 unused
+EXTERN char e_using_rcurly_outside_if_block_scope[]
+ INIT(= N_("E1025: using } outside of a block scope"));
+EXTERN char e_missing_rcurly[]
+ INIT(= N_("E1026: Missing }"));
+EXTERN char e_missing_return_statement[]
+ INIT(= N_("E1027: Missing return statement"));
+EXTERN char e_compile_def_function_failed[]
+ INIT(= N_("E1028: compile_def_function failed"));
+EXTERN char e_expected_str_but_got_str[]
+ INIT(= N_("E1029: Expected %s but got %s"));
+EXTERN char e_using_string_as_number[]
+ INIT(= N_("E1030: Using a String as a Number"));
+EXTERN char e_cannot_use_void_value[]
+ INIT(= N_("E1031: Cannot use void value"));
+EXTERN char e_missing_catch_or_finally[]
+ INIT(= N_("E1032: missing :catch or :finally"));
+EXTERN char e_catch_unreachable_after_catch_all[]
+ INIT(= N_("E1033: catch unreachable after catch-all"));
+EXTERN char e_cannot_use_reserved_name[]
+ INIT(= N_("E1034: Cannot use reserved name %s"));
+EXTERN char e_percent_requires_number_arguments[]
+ INIT(= N_("E1035: % requires number arguments"));
+EXTERN char e_char_requires_number_or_float_arguments[]
+ INIT(= N_("E1036: %c requires number or float arguments"));
+EXTERN char e_cannot_use_str_with_str[]
+ INIT(= N_("E1037: Cannot use \"%s\" with %s"));
+EXTERN char e_vim9script_can_only_be_used_in_script[]
+ INIT(= N_("E1038: vim9script can only be used in a script"));
+EXTERN char e_vim9script_must_be_first_command_in_script[]
+ INIT(= N_("E1039: vim9script must be the first command in a script"));
+EXTERN char e_cannot_use_scriptversion_after_vim9script[]
+ INIT(= N_("E1040: Cannot use :scriptversion after :vim9script"));
+EXTERN char e_redefining_script_item_str[]
+ INIT(= N_("E1041: Redefining script item %s"));
+EXTERN char e_export_can_only_be_used_in_vim9script[]
+ INIT(= N_("E1042: export can only be used in vim9script"));
+EXTERN char e_invalid_command_after_export[]
+ INIT(= N_("E1043: Invalid command after :export"));
+EXTERN char e_export_with_invalid_argument[]
+ INIT(= N_("E1044: export with invalid argument"));
+EXTERN char e_missing_as_after_star[]
+ INIT(= N_("E1045: Missing \"as\" after *"));
+EXTERN char e_missing_comma_in_import[]
+ INIT(= N_("E1046: Missing comma in import"));
+EXTERN char e_syntax_error_in_import[]
+ INIT(= N_("E1047: syntax error in import"));
+EXTERN char e_item_not_found_in_script_str[]
+ INIT(= N_("E1048: Item not found in script: %s"));
+EXTERN char e_item_not_exported_in_script_str[]
+ INIT(= N_("E1049: Item not exported in script: %s"));
EXTERN char e_colon_required_before_a_range[]
INIT(= N_("E1050: Colon required before a range"));
+EXTERN char e_wrong_argument_type_for_plus[]
+ INIT(= N_("E1051: wrong argument type for +"));
+EXTERN char e_cannot_declare_an_option[]
+ INIT(= N_("E1052: Cannot declare an option: %s"));
+EXTERN char e_could_not_import_str[]
+ INIT(= N_("E1053: Could not import \"%s\""));
+EXTERN char e_variable_already_declared_in_script[]
+ INIT(= N_("E1054: Variable already declared in the script: %s"));
+EXTERN char e_missing_name_after_dots[]
+ INIT(= N_("E1055: Missing name after ..."));
+EXTERN char e_expected_type_str[]
+ INIT(= N_("E1056: expected a type: %s"));
+EXTERN char e_missing_enddef[]
+ INIT(= N_("E1057: Missing :enddef"));
+EXTERN char e_function_nesting_too_deep[]
+ INIT(= N_("E1058: function nesting too deep"));
+EXTERN char e_no_white_space_allowed_before_colon_str[]
+ INIT(= N_("E1059: No white space allowed before colon: %s"));
+EXTERN char e_expected_dot_after_name_str[]
+ INIT(= N_("E1060: expected dot after name: %s"));
+EXTERN char e_cannot_find_function_str[]
+ INIT(= N_("E1061: Cannot find function %s"));
+// E1062 unused
+EXTERN char e_type_mismatch_for_v_variable[]
+ INIT(= N_("E1063: type mismatch for v: variable"));
+// E1064 unused
+// E1065 unused
+EXTERN char e_cannot_declare_a_register[]
+ INIT(= N_("E1066: Cannot declare a register: %s"));
+EXTERN char e_separator_mismatch[]
+ INIT(= N_("E1067: Separator mismatch: %s"));
EXTERN char e_no_white_space_allowed_before[]
INIT(= N_("E1068: No white space allowed before '%s'"));
EXTERN char e_white_space_required_after[]
INIT(= N_("E1069: white space required after '%s'"));
+EXTERN char e_missing_from[]
+ INIT(= N_("E1070: Missing \"from\""));
+EXTERN char e_invalid_string_after_from[]
+ INIT(= N_("E1071: Invalid string after \"from\""));
+EXTERN char e_cannot_compare_str_with_str[]
+ INIT(= N_("E1072: Cannot compare %s with %s"));
EXTERN char e_name_already_defined[]
INIT(= N_("E1073: name already defined: %s"));
-EXTERN char e_list_dict_or_blob_required[]
- INIT(= N_("E1090: List, Dict or Blob required"));
+EXTERN char e_no_white_space_allowed_after_dot[]
+ INIT(= N_("E1074: no white space allowed after dot"));
+EXTERN char e_namespace_not_supported_str[]
+ INIT(= N_("E1075: Namespace not supported: %s"));
+EXTERN char e_this_vim_is_not_compiled_with_float_support[]
+ INIT(= N_("E1076: This Vim is not compiled with float support"));
+EXTERN char e_missing_argument_type_for_str[]
+ INIT(= N_("E1077: Missing argument type for %s"));
+// E1078 unused
+// E1079 unused
+// E1080 unused
+EXTERN char e_cannot_unlet_str[]
+ INIT(= N_("E1081: Cannot unlet %s"));
+EXTERN char e_cannot_use_namespaced_variable[]
+ INIT(= N_("E1082: Cannot use a namespaced variable: %s"));
+EXTERN char e_missing_backtick[]
+ INIT(= N_("E1083: missing backtick"));
+EXTERN char e_cannot_delete_vim9_script_function_str[]
+ INIT(= N_("E1084: Cannot delete Vim9 script function %s"));
+EXTERN char e_not_callable_type_str[]
+ INIT(= N_("E1085: Not a callable type: %s"));
+EXTERN char e_cannot_use_function_inside_def[]
+ INIT(= N_("E1086: Cannot use :function inside :def"));
+EXTERN char e_cannot_use_index_when_declaring_variable[]
+ INIT(= N_("E1087: cannot use an index when declaring a variable"));
+// E1088 unused
+EXTERN char e_unknown_variable_str[]
+ INIT(= N_("E1089: unknown variable: %s"));
+EXTERN char e_cannot_assign_to_argument[]
+ INIT(= N_("E1090: Cannot assign to argument %s"));
+EXTERN char e_function_is_not_compiled_str[]
+ INIT(= N_("E1091: Function is not compiled: %s"));
+EXTERN char e_cannot_use_list_for_declaration[]
+ INIT(= N_("E1092: Cannot use a list for a declaration"));
+EXTERN char e_expected_nr_items_but_got_nr[]
+ INIT(= N_("E1093: Expected %d items but got %d"));
+EXTERN char e_import_can_only_be_used_in_script[]
+ INIT(= N_("E1094: import can only be used in a script"));
+EXTERN char e_unreachable_code_after_return[]
+ INIT(= N_("E1095: Unreachable code after :return"));
+EXTERN char e_returning_value_in_function_without_return_type[]
+ INIT(= N_("E1096: Returning a value in a function without a return type"));
+EXTERN char e_line_incomplete[]
+ INIT(= N_("E1097: line incomplete"));
+// E1098 unused
+EXTERN char e_unknown_error_while_executing_str[]
+ INIT(= N_("E1099: Unknown error while executing %s"));
+EXTERN char e_cannot_declare_script_variable_in_function[]
+ INIT(= N_("E1101: Cannot declare a script variable in a function: %s"));
+EXTERN char e_lambda_function_not_found_str[]
+ INIT(= N_("E1102: lambda function not found: %s"));
EXTERN char e_dictionary_not_set[]
INIT(= N_("E1103: Dictionary not set"));
+EXTERN char e_missing_gt[]
+ INIT(= N_("E1104: Missing >"));
+EXTERN char e_cannot_convert_str_to_string[]
+ INIT(= N_("E1105: Cannot convert %s to string"));
+EXTERN char e_one_argument_too_many[]
+ INIT(= N_("E1106: one argument too many"));
+EXTERN char e_nr_arguments_too_many[]
+ INIT(= N_("E1106: %d arguments too many"));
+EXTERN char e_list_dict_or_blob_required[]
+ INIT(= N_("E1107: List, Dict or Blob required"));
+EXTERN char e_item_not_found_str[]
+ INIT(= N_("E1108: Item not found: %s"));
#endif
diff --git a/src/eval.c b/src/eval.c
index 984835b6da..70d5b343dd 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -858,7 +858,7 @@ get_lval(
v = find_var(lp->ll_name, (flags & GLV_READ_ONLY) ? NULL : &ht,
flags & GLV_NO_AUTOLOAD);
if (v == NULL && !quiet)
- semsg(_(e_undefvar), lp->ll_name);
+ semsg(_(e_undefined_variable_str), lp->ll_name);
*p = cc;
if (v == NULL)
return NULL;
diff --git a/src/evalvars.c b/src/evalvars.c
index d948ddec51..0562b4ce22 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -2054,7 +2054,7 @@ set_vim_var_tv(int idx, typval_T *tv)
{
if (vimvars[idx].vv_type != tv->v_type)
{
- emsg(_("E1063: type mismatch for v: variable"));
+ emsg(_(e_type_mismatch_for_v_variable));
clear_tv(tv);
return FAIL;
}
@@ -2442,7 +2442,7 @@ eval_variable(
if (tv == NULL)
{
if (rettv != NULL && verbose)
- semsg(_(e_undefvar), name);
+ semsg(_(e_undefined_variable_str), name);
ret = FAIL;
}
else if (rettv != NULL)
@@ -2945,7 +2945,7 @@ set_var_const(
{
if ((flags & LET_NO_COMMAND) == 0)
{
- semsg(_("E1041: Redefining script item %s"), name);
+ semsg(_(e_redefining_script_item_str), name);
return;
}
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 2550f0e30e..c61f575335 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3842,7 +3842,7 @@ ex_substitute(exarg_T *eap)
if (search_regcomp(pat, RE_SUBST, which_pat, SEARCH_HIS, &regmatch) == FAIL)
{
if (subflags.do_error)
- emsg(_(e_invcmd));
+ emsg(_(e_invalid_command));
return;
}
@@ -4816,7 +4816,7 @@ ex_global(exarg_T *eap)
if (search_regcomp(pat, RE_BOTH, which_pat, SEARCH_HIS, &regmatch) == FAIL)
{
- emsg(_(e_invcmd));
+ emsg(_(e_invalid_command));
return;
}
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 87ae5f9997..c08524fff4 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -5978,7 +5978,7 @@ ex_recover(exarg_T *eap)
static void
ex_wrongmodifier(exarg_T *eap)
{
- eap->errmsg = _(e_invcmd);
+ eap->errmsg = _(e_invalid_command);
}
/*
diff --git a/src/globals.h b/src/globals.h
index f3cfb55767..d7d1c08f9a 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1588,7 +1588,6 @@ EXTERN char e_invargNval[] INIT(= N_("E475: Invalid value for argument %s: %s"))
EXTERN char e_invexpr2[] INIT(= N_("E15: Invalid expression: %s"));
#endif
EXTERN char e_invrange[] INIT(= N_("E16: Invalid range"));
-EXTERN char e_invcmd[] INIT(= N_("E476: Invalid command"));
#if defined(UNIX) || defined(FEAT_SYN_HL) || defined(FEAT_SPELL)
EXTERN char e_isadir2[] INIT(= N_("E17: \"%s\" is a directory"));
#endif
@@ -1677,7 +1676,6 @@ EXTERN char e_re_damg[] INIT(= N_("E43: Damaged match string"));
EXTERN char e_re_corr[] INIT(= N_("E44: Corrupted regexp program"));
EXTERN char e_readonly[] INIT(= N_("E45: 'readonly' option is set (add ! to override)"));
#ifdef FEAT_EVAL
-EXTERN char e_undefvar[] INIT(= N_("E121: Undefined variable: %s"));
EXTERN char e_letwrong[] INIT(= N_("E734: Wrong variable type for %s="));
EXTERN char e_illvar[] INIT(= N_("E461: Illegal variable name: %s"));
EXTERN char e_cannot_mod[] INIT(= N_("E995: Cannot modify existing variable"));
diff --git a/src/match.c b/src/match.c
index 2bb98fe9f3..0df7bfe2fc 100644
--- a/src/match.c
+++ b/src/match.c
@@ -1296,7 +1296,7 @@ ex_match(exarg_T *eap)
id = eap->line2;
else
{
- emsg(_(e_invcmd));
+ emsg(_(e_invalid_command));
return;
}
diff --git a/src/scriptfile.c b/src/scriptfile.c
index 320340f8d7..fee29712c5 100644
--- a/src/scriptfile.c
+++ b/src/scriptfile.c
@@ -1900,7 +1900,7 @@ ex_scriptversion(exarg_T *eap UNUSED)
}
if (in_vim9script())
{
- emsg(_("E1040: Cannot use :scriptversion after :vim9script"));
+ emsg(_(e_cannot_use_scriptversion_after_vim9script));
return;
}
diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index fe8afad9a0..ef89322dff 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -35,7 +35,7 @@ enddef
def Test_disassemble_load()
assert_fails('disass NoFunc', 'E1061:')
- assert_fails('disass NotCompiled', 'E1062:')
+ assert_fails('disass NotCompiled', 'E1091:')
assert_fails('disass', 'E471:')
assert_fails('disass [', 'E475:')
assert_fails('disass 234', 'E129:')
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 38a332601a..15c26fd620 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1281,9 +1281,9 @@ func Test_expr6_fails()
call CheckDefFailure(["let x = #{one: 1} / #{two: 2}"], 'E1036:')
call CheckDefFailure(["let x = #{one: 1} % #{two: 2}"], 'E1035:')
- call CheckDefFailure(["let x = 0xff[1]"], 'E1090:')
+ call CheckDefFailure(["let x = 0xff[1]"], 'E1107:')
if has('float')
- call CheckDefFailure(["let x = 0.7[1]"], 'E1090:')
+ call CheckDefFailure(["let x = 0.7[1]"], 'E1107:')
endif
endfunc
@@ -1382,8 +1382,8 @@ def Test_expr7_vimvar()
let old: list<string> = v:oldfiles
let compl: dict<any> = v:completed_item
- call CheckDefFailure(["let old: list<number> = v:oldfiles"], 'E1013: type mismatch, expected list<number> but got list<string>')
- call CheckDefFailure(["let old: dict<number> = v:completed_item"], 'E1013: type mismatch, expected dict<number> but got dict<any>')
+ call CheckDefFailure(["let old: list<number> = v:oldfiles"], 'E1012: type mismatch, expected list<number> but got list<string>')
+ call CheckDefFailure(["let old: dict<number> = v:completed_item"], 'E1012: type mismatch, expected dict<number> but got dict<any>')
enddef
def Test_expr7_special()
@@ -1464,10 +1464,10 @@ def Test_expr7_list()
call CheckDefFailure(["let x = g:list_mixed["], 'E1097:')
call CheckDefFailure(["let x = g:list_mixed[0"], 'E1097:')
call CheckDefExecFailure(["let x = g:list_empty[3]"], 'E684:')
- call CheckDefFailure(["let l: list<number> = [234, 'x']"], 'E1013:')
- call CheckDefFailure(["let l: list<number> = ['x', 234]"], 'E1013:')
- call CheckDefFailure(["let l: list<string> = [234, 'x']"], 'E1013:')
- call CheckDefFailure(["let l: list<string> = ['x', 123]"], 'E1013:')
+ call CheckDefFailure(["let l: list<number> = [234, 'x']"], 'E1012:')
+ call CheckDefFailure(["let l: list<number> = ['x', 234]"], 'E1012:')
+ call CheckDefFailure(["let l: list<string> = [234, 'x']"], 'E1012:')
+ call CheckDefFailure(["let l: list<string> = ['x', 123]"], 'E1012:')
enddef
def Test_expr7_list_vim9script()
@@ -1509,22 +1509,22 @@ def Test_expr7_list_vim9script()
vim9script
let l: list<number> = [234, 'x']
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
lines =<< trim END
vim9script
let l: list<number> = ['x', 234]
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
lines =<< trim END
vim9script
let l: list<string> = ['x', 234]
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
lines =<< trim END
vim9script
let l: list<string> = [234, 'x']
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
enddef
def LambdaWithComments(): func
@@ -1652,10 +1652,10 @@ def Test_expr7_dict()
call CheckDefExecFailure(["let x = g:anint.member"], 'E715:')
call CheckDefExecFailure(["let x = g:dict_empty.member"], 'E716:')
- call CheckDefFailure(['let x: dict<number> = #{a: 234, b: "1"}'], 'E1013:')
- call CheckDefFailure(['let x: dict<number> = #{a: "x", b: 134}'], 'E1013:')
- call CheckDefFailure(['let x: dict<string> = #{a: 234, b: "1"}'], 'E1013:')
- call CheckDefFailure(['let x: dict<string> = #{a: "x", b: 134}'], 'E1013:')
+ call CheckDefFailure(['let x: dict<number> = #{a: 234, b: "1"}'], 'E1012:')
+ call CheckDefFailure(['let x: dict<number> = #{a: "x", b: 134}'], 'E1012:')
+ call CheckDefFailure(['let x: dict<string> = #{a: 234, b: "1"}'], 'E1012:')
+ call CheckDefFailure(['let x: dict<string> = #{a: "x", b: 134}'], 'E1012:')
enddef
def Test_expr7_dict_vim9script()
@@ -1720,22 +1720,22 @@ def Test_expr7_dict_vim9script()
vim9script
let l: dict<number> = #{a: 234, b: 'x'}
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
lines =<< trim END
vim9script
let l: dict<number> = #{a: 'x', b: 234}
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
lines =<< trim END
vim9script
let l: dict<string> = #{a: 'x', b: 234}
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
lines =<< trim END
vim9script
let l: dict<string> = #{a: 234, b: 'x'}
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
enddef
let g:oneString = 'one'
@@ -2008,7 +2008,7 @@ func Test_expr7_fails()
call CheckDefFailure(["let x = 123->{x -> x + 5) }"], "E451:")
call CheckDefFailure(["let x = &notexist"], 'E113:')
- call CheckDefFailure(["&grepprg = [343]"], 'E1013:')
+ call CheckDefFailure(["&grepprg = [343]"], 'E1012:')
call CheckDefExecFailure(["echo s:doesnt_exist"], 'E121:')
call CheckDefExecFailure(["echo g:doesnt_exist"], 'E121:')
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 75db260ce9..38d613ae0b 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -269,7 +269,7 @@ def Test_call_def_varargs()
enddef
Func(1, 2, 3)
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
lines =<< trim END
vim9script
@@ -278,7 +278,7 @@ def Test_call_def_varargs()
enddef
Func('a', 9)
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
lines =<< trim END
vim9script
@@ -287,7 +287,7 @@ def Test_call_def_varargs()
enddef
Func(1, 'a')
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
enddef
def Test_call_call()
@@ -430,7 +430,7 @@ def Test_call_funcref()
enddef
let Funcref: func(string) = function('UseNumber')
END
- CheckScriptFailure(lines, 'E1013: type mismatch, expected func(string) but got func(number)')
+ CheckScriptFailure(lines, 'E1012: type mismatch, expected func(string) but got func(number)')
lines =<< trim END
vim9script
@@ -682,7 +682,7 @@ def Test_vim9script_call_fail_type()
enddef
MyFunc(1234)
END
- CheckScriptFailure(lines, 'E1013: type mismatch, expected string but got number')
+ CheckScriptFailure(lines, 'E1012: type mismatch, expected string but got number')
enddef
def Test_vim9script_call_fail_const()
@@ -919,41 +919,41 @@ def Test_func_type_part()
let RefVoid: func: void
RefVoid = FuncNoArgNoRet
RefVoid = FuncOneArgNoRet
- CheckDefFailure(['let RefVoid: func: void', 'RefVoid = FuncNoArgRetNumber'], 'E1013: type mismatch, expected func() but got func(): number')
- CheckDefFailure(['let RefVoid: func: void', 'RefVoid = FuncNoArgRetString'], 'E1013: type mismatch, expected func() but got func(): string')
+ CheckDefFailure(['let RefVoid: func: void', 'RefVoid = FuncNoArgRetNumber'], 'E1012: type mismatch, expected func() but got func(): number')
+ CheckDefFailure(['let RefVoid: func: void', 'RefVoid = FuncNoArgRetString'], 'E1012: type mismatch, expected func() but got func(): string')
let RefAny: func(): any
RefAny = FuncNoArgRetNumber
RefAny = FuncNoArgRetString
- CheckDefFailure(['let RefAny: func(): any', 'RefAny = FuncNoArgNoRet'], 'E1013: type mismatch, expected func(): any but got func()')
- CheckDefFailure(['let RefAny: func(): any', 'RefAny = FuncOneArgNoRet'], 'E1013: type mismatch, expected func(): any but got func(number)')
+ CheckDefFailure(['let RefAny: func(): any', 'RefAny = FuncNoArgNoRet'], 'E1012: type mismatch, expected func(): any but got func()')
+ CheckDefFailure(['let RefAny: func(): any', 'RefAny = FuncOneArgNoRet'], 'E1012: type mismatch, expected func(): any but got func(number)')
let RefNr: func: number
RefNr = FuncNoArgRetNumber
RefNr = FuncOneArgRetNumber
- CheckDefFailure(['let RefNr: func: number', 'RefNr = FuncNoArgNoRet'], 'E1013: type mismatch, expected func(): number but got func()')
- CheckDefFailure(['let RefNr: func: number', 'RefNr = FuncNoArgRetString'], 'E1013: type mismatch, expected func(): number but got func(): string')
+ CheckDefFailure(['let RefNr: func: number', 'RefNr = FuncNoArgNoRet'], 'E1012: type mismatch, expected func(): number but got func()')
+ CheckDefFailure(['let RefNr: func: number', 'RefNr = FuncNoArgRetString'], 'E1012: type mismatch, expected func(): number but got func(): string')
let RefStr: func: string
RefStr = FuncNoArgRetString
RefStr = FuncOneArgRetString
- CheckDefFailure(['let RefStr: func: string', 'RefStr = FuncNoArgNoRet'], 'E1013: type mismatch, expected func(): string but got func()')
- CheckDefFailure(['let RefStr: func: string', 'RefStr = FuncNoArgRetNumber'], 'E1013: type mismatch, expected func(): string but got func(): number')
+ CheckDefFailure(['let RefStr: func: string', 'RefStr = FuncNoArgNoRet'], 'E1012: type mismatch, expected func(): string but got func()')
+ CheckDefFailure(['let RefStr: func: string', 'RefStr = FuncNoArgRetNumber'], 'E1012: type mismatch, expected func(): string but got func(): number')
enddef
def Test_func_type_fails()
CheckDefFailure(['let ref1: func()'], 'E704:')
- CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncNoArgRetNumber'], 'E1013: type mismatch, expected func() but got func(): number')
- CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgNoRet'], 'E1013: type mismatch, expected func() but got func(number)')
- CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgRetNumber'], 'E1013: type mismatch, expected func() but got func(number): number')
- CheckDefFailure(['let Ref1: func(bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(bool) but got func(bool, number)')
- CheckDefFailure(['let Ref1: func(?bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(?bool) but got func(bool, number)')
- CheckDefFailure(['let Ref1: func(...bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1013: type mismatch, expected func(...bool) but got func(bool, number)')
+ CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncNoArgRetNumber'], 'E1012: type mismatch, expected func() but got func(): number')
+ CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgNoRet'], 'E1012: type mismatch, expected func() but got func(number)')
+ CheckDefFailure(['let Ref1: func()', 'Ref1 = FuncOneArgRetNumber'], 'E1012: type mismatch, expected func() but got func(number): number')
+ CheckDefFailure(['let Ref1: func(bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: type mismatch, expected func(bool) but got func(bool, number)')
+ CheckDefFailure(['let Ref1: func(?bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: type mismatch, expected func(?bool) but got func(bool, number)')
+ CheckDefFailure(['let Ref1: func(...bool)', 'Ref1 = FuncTwoArgNoRet'], 'E1012: type mismatch, expected func(...bool) but got func(bool, number)')
call CheckDefFailure(['let RefWrong: func(string ,number)'], 'E1068:')
call CheckDefFailure(['let RefWrong: func(string,number)'], 'E1069:')
- call CheckDefFailure(['let RefWrong: func(bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'], 'E740:')
+ call CheckDefFailure(['let RefWrong: func(bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool, bool)'], 'E1005:')
call CheckDefFailure(['let RefWrong: func(bool):string'], 'E1069:')
enddef
@@ -969,7 +969,7 @@ def Test_func_return_type()
str = FuncOneArgRetAny('yes')
assert_equal('yes', str)
- CheckDefFailure(['let str: string', 'str = FuncNoArgRetNumber()'], 'E1013: type mismatch, expected string but got number')
+ CheckDefFailure(['let str: string', 'str = FuncNoArgRetNumber()'], 'E1012: type mismatch, expected string but got number')
enddef
def MultiLine(
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index d8e20e12f9..832835ec50 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -31,7 +31,7 @@ def Test_assignment()
call CheckDefFailure(['let lambda = {-> "lambda"}'], 'E704:')
let nr: number = 1234
- call CheckDefFailure(['let nr: number = "asdf"'], 'E1013:')
+ call CheckDefFailure(['let nr: number = "asdf"'], 'E1012:')
let a: number = 6 #comment
assert_equal(6, a)
@@ -100,11 +100,11 @@ def Test_assignment()
call CheckDefFailure(['&notex += 3'], 'E113:')
call CheckDefFailure(['&ts ..= "xxx"'], 'E1019:')
- call CheckDefFailure(['&ts = [7]'], 'E1013:')
+ call CheckDefFailure(['&ts = [7]'], 'E1012:')
call CheckDefExecFailure(['&ts = g:alist'], 'E1029: Expected number but got list')
- call CheckDefFailure(['&ts = "xx"'], 'E1013:')
+ call CheckDefFailure(['&ts = "xx"'], 'E1012:')
call CheckDefExecFailure(['&ts = g:astring'], 'E1029: Expected number but got string')
- call CheckDefFailure(['&path += 3'], 'E1013:')
+ call CheckDefFailure(['&path += 3'], 'E1012:')
call CheckDefExecFailure(['&bs = "asdf"'], 'E474:')
# test freeing ISN_STOREOPT
call CheckDefFailure(['&ts = 3', 'let asdf'], 'E1022:')
@@ -128,13 +128,13 @@ def Test_assignment()
$SOME_ENV_VAR ..= 'more'
assert_equal('somemore', $SOME_ENV_VAR)
call CheckDefFailure(['$SOME_ENV_VAR += "more"'], 'E1051:')
- call CheckDefFailure(['$SOME_ENV_VAR += 123'], 'E1013:')
+ call CheckDefFailure(['$SOME_ENV_VAR += 123'], 'E1012:')
@a = 'areg'
@a ..= 'add'
assert_equal('aregadd', @a)
call CheckDefFailure(['@a += "more"'], 'E1051:')
- call CheckDefFailure(['@a += 123'], 'E1013:')
+ call CheckDefFailure(['@a += 123'], 'E1012:')
lines =<< trim END
vim9script
@@ -148,7 +148,7 @@ def Test_assignment()
v:errmsg ..= 'again'
assert_equal('noneagain', v:errmsg)
call CheckDefFailure(['v:errmsg += "more"'], 'E1051:')
- call CheckDefFailure(['v:errmsg += 123'], 'E1013:')
+ call CheckDefFailure(['v:errmsg += 123'], 'E1012:')
# single letter variables
a = 123
@@ -538,7 +538,7 @@ def Test_assignment_failure()
call CheckDefFailure(['let anr = 4', 'anr ..= "text"'], 'E1019:')
call CheckDefFailure(['let xnr += 4'], 'E1020:')
- call CheckScriptFailure(['vim9script', 'def Func()', 'let dummy = s:notfound', 'enddef', 'defcompile'], 'E1050:')
+ call CheckScriptFailure(['vim9script', 'def Func()', 'let dummy = s:notfound', 'enddef', 'defcompile'], 'E1108:')
call CheckDefFailure(['let var: list<string> = [123]'], 'expected list<string> but got list<number>')
call CheckDefFailure(['let var: list<number> = ["xx"]'], 'expected list<number> but got list<string>')
@@ -1499,7 +1499,7 @@ def Test_vim9script_fails()
CheckScriptFailure(['vim9script', 'export let g:some'], 'E1022:')
CheckScriptFailure(['vim9script', 'export echo 134'], 'E1043:')
- CheckScriptFailure(['vim9script', 'let str: string', 'str = 1234'], 'E1013:')
+ CheckScriptFailure(['vim9script', 'let str: string', 'str = 1234'], 'E1012:')
CheckScriptFailure(['vim9script', 'const str = "asdf"', 'str = "xxx"'], 'E46:')
assert_fails('vim9script', 'E1038')
@@ -2218,9 +2218,9 @@ enddef
def Test_for_loop_fails()
CheckDefFailure(['for # in range(5)'], 'E690:')
CheckDefFailure(['for i In range(5)'], 'E690:')
- CheckDefFailure(['let x = 5', 'for x in range(5)'], 'E1023:')
+ CheckDefFailure(['let x = 5', 'for x in range(5)'], 'E1017:')
CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:')
- CheckDefFailure(['for i in "text"'], 'E1013:')
+ CheckDefFailure(['for i in "text"'], 'E1012:')
CheckDefFailure(['for i in xxx'], 'E1001:')
CheckDefFailure(['endfor'], 'E588:')
CheckDefFailure(['for i in range(3)', 'echo 3'], 'E170:')
@@ -2955,7 +2955,7 @@ def Test_let_type_check()
let var: string
var = 1234
END
- CheckScriptFailure(lines, 'E1013:')
+ CheckScriptFailure(lines, 'E1012:')
lines =<< trim END
vim9script
diff --git a/src/userfunc.c b/src/userfunc.c
index 6c57769929..1b6eff8938 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -110,7 +110,7 @@ one_function_arg(char_u *arg, garray_T *newargs, garray_T *argtypes, int skip)
if (VIM_ISWHITE(*p) && *skipwhite(p) == ':')
{
- semsg(_("E1059: No white space allowed before colon: %s"),
+ semsg(_(e_no_white_space_allowed_before_colon_str),
arg_copy == NULL ? arg : arg_copy);
p = skipwhite(p);
}
@@ -128,7 +128,7 @@ one_function_arg(char_u *arg, garray_T *newargs, garray_T *argtypes, int skip)
}
else if (*skipwhite(p) != '=')
{
- semsg(_("E1077: Missing argument type for %s"),
+ semsg(_(e_missing_argument_type_for_str),
arg_copy == NULL ? arg : arg_copy);
return arg;
}
@@ -212,7 +212,7 @@ get_function_args(
// ...name: list<type>
if (!ASCII_ISALPHA(*p))
{
- emsg(_("E1055: Missing name after ..."));
+ emsg(_(e_missing_name_after_dots));
break;
}
@@ -1176,7 +1176,7 @@ copy_func(char_u *lambda, char_u *global)
ufunc_T *fp;
if (ufunc == NULL)
- semsg(_("E1102: lambda function not found: %s"), lambda);
+ semsg(_(e_lambda_function_not_found_str), lambda);
else
{
// TODO: handle ! to overwrite
@@ -2887,7 +2887,7 @@ def_function(exarg_T *eap, char_u *name_arg)
}
else
{
- semsg(_("E1056: expected a type: %s"), ret_type);
+ semsg(_(e_expected_type_str), ret_type);
ret_type = NULL;
}
}
@@ -3018,7 +3018,7 @@ def_function(exarg_T *eap, char_u *name_arg)
if (theline == NULL)
{
if (eap->cmdidx == CMD_def)
- emsg(_("E1057: Missing :enddef"));
+ emsg(_(e_missing_enddef));
else
emsg(_("E126: Missing :endfunction"));
goto erret;
@@ -3119,7 +3119,7 @@ def_function(exarg_T *eap, char_u *name_arg)
if (*skipwhite(p) == '(')
{
if (nesting == MAX_FUNC_NESTING - 1)
- emsg(_("E1058: function nesting too deep"));
+ emsg(_(e_function_nesting_too_deep));
else
{
++nesting;
@@ -3785,7 +3785,7 @@ ex_delfunction(exarg_T *eap)
}
if (fp->uf_flags & FC_VIM9)
{
- semsg(_("E1084: Cannot delete Vim9 script function %s"), eap->arg);
+ semsg(_(e_cannot_delete_vim9_script_function_str), eap->arg);
return;
}
diff --git a/src/version.c b/src/version.c
index 4889fcdf8b..06c6995c61 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1460,
+/**/
1459,
/**/
1458,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 920628444e..11ffee9ad7 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -143,13 +143,6 @@ struct cctx_S {
garray_T *ctx_type_list; // list of pointers to allocated types
};
-static char e_var_notfound[] = N_("E1001: variable not found: %s");
-static char e_syntax_at[] = N_("E1002: Syntax error at %s");
-static char e_used_as_arg[] = N_("E1006: %s is used as an argument");
-static char e_cannot_use_void[] = N_("E1031: Cannot use void value");
-static char e_namespace[] = N_("E1075: Namespace not supported: %s");
-static char e_unknown_var[] = N_("E1089: unknown variable: %s");
-
static void delete_def_function_contents(dfunc_T *dfunc);
/*
@@ -431,9 +424,9 @@ check_number_or_float(vartype_T type1, vartype_T type2, char_u *op)
|| type2 == V