aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/eval.c15
-rw-r--r--test/old/testdir/test_listdict.vim13
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:')