diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-06-12 18:10:35 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2023-06-12 18:14:20 +0800 |
commit | d83a196716e2834238cd2d28b2a6f5c8899a506f (patch) | |
tree | b06b46eb4bd240fb166a95fc4e6baad56dbc6bb3 | |
parent | b867f6c7c5cadd2bd09443a74a84aa55eb819e58 (diff) | |
download | rneovim-d83a196716e2834238cd2d28b2a6f5c8899a506f.tar.gz rneovim-d83a196716e2834238cd2d28b2a6f5c8899a506f.tar.bz2 rneovim-d83a196716e2834238cd2d28b2a6f5c8899a506f.zip |
vim-patch:8.2.3852: Vim9: not enough tests
Problem: Vim9: not enough tests.
Solution: Also run existing tests for Vim9 script. Make errors more
consistent.
https://github.com/vim/vim/commit/f47c5a8e2d8eda7c2c8a9cccf9568eb56c03a0cf
Co-authored-by: Bram Moolenaar <Bram@vim.org>
-rw-r--r-- | src/nvim/eval.c | 15 | ||||
-rw-r--r-- | test/old/testdir/test_listdict.vim | 13 |
2 files changed, 20 insertions, 8 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 50da0a8657..b2729b0e67 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -89,20 +89,25 @@ static const char *e_missbrac = N_("E111: Missing ']'"); static const char *e_list_end = N_("E697: Missing end of List ']': %s"); -static const char *e_cannot_slice_dictionary +static const char e_cannot_slice_dictionary[] = N_("E719: Cannot slice a Dictionary"); static const char e_cannot_index_special_variable[] = N_("E909: Cannot index a special variable"); static const char *e_nowhitespace = N_("E274: No white space allowed before parenthesis"); static const char *e_write2 = N_("E80: Error while writing: %s"); +static const char e_cannot_index_a_funcref[] + = N_("E695: Cannot index a Funcref"); static const char e_variable_nested_too_deep_for_making_copy[] = N_("E698: Variable nested too deep for making a copy"); -static const char *e_string_list_or_blob_required = N_("E1098: String, List or Blob required"); -static const char e_expression_too_recursive_str[] = N_("E1169: Expression too recursive: %s"); +static const char e_string_list_or_blob_required[] + = N_("E1098: String, List or Blob required"); +static const char e_expression_too_recursive_str[] + = N_("E1169: Expression too recursive: %s"); static const char e_dot_can_only_be_used_on_dictionary_str[] = N_("E1203: Dot can only be used on a dictionary: %s"); -static const char e_empty_function_name[] = N_("E1192: Empty function name"); +static const char e_empty_function_name[] + = N_("E1192: Empty function name"); static char * const namespace_char = "abglstvw"; @@ -3567,7 +3572,7 @@ static int check_can_index(typval_T *rettv, bool evaluate, bool verbose) case VAR_FUNC: case VAR_PARTIAL: if (verbose) { - emsg(_("E695: Cannot index a Funcref")); + emsg(_(e_cannot_index_a_funcref)); } return FAIL; case VAR_FLOAT: diff --git a/test/old/testdir/test_listdict.vim b/test/old/testdir/test_listdict.vim index 4ed3991ee7..c86f938c03 100644 --- a/test/old/testdir/test_listdict.vim +++ b/test/old/testdir/test_listdict.vim @@ -1178,12 +1178,19 @@ endfunc " List and dict indexing tests func Test_listdict_index() - call assert_fails('echo function("min")[0]', 'E695:') - call assert_fails('echo v:true[0]', 'E909:') + call CheckLegacyAndVim9Failure(['echo function("min")[0]'], 'E695:') + call CheckLegacyAndVim9Failure(['echo v:true[0]'], 'E909:') + call CheckLegacyAndVim9Failure(['echo v:null[0]'], 'E909:') + let d = {'k' : 10} call assert_fails('echo d.', 'E15:') - call assert_fails('echo d[1:2]', 'E719:') + call CheckDefAndScriptFailure2(['var d = {k: 10}', 'echo d.'], 'E1127', 'E15:') + + call CheckLegacyAndVim9Failure(['VAR d = {"k": 10}', 'echo d[1 : 2]'], 'E719:') + call assert_fails("let v = [4, 6][{-> 1}]", 'E729:') + call CheckDefAndScriptFailure2(['var v = [4, 6][() => 1]'], 'E1012', 'E703:') + call assert_fails("let v = range(5)[2:[]]", 'E730:') call assert_fails("let v = range(5)[2:{-> 2}(]", ['E15:', 'E116:']) call assert_fails("let v = range(5)[2:3", 'E111:') |