diff options
-rw-r--r-- | src/nvim/eval/funcs.c | 6 | ||||
-rw-r--r-- | test/old/testdir/test_functions.vim | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c index b0e0fffe5c..a9f87b5008 100644 --- a/src/nvim/eval/funcs.c +++ b/src/nvim/eval/funcs.c @@ -147,6 +147,8 @@ PRAGMA_DIAG_POP static const char *e_listblobarg = N_("E899: Argument of %s must be a List or Blob"); static const char *e_invalwindow = N_("E957: Invalid window number"); +static const char e_argument_of_str_must_be_list_string_or_dictionary[] + = N_("E706: Argument of %s must be a List, String or Dictionary"); static const char e_invalid_submatch_number_nr[] = N_("E935: Invalid submatch number: %d"); static const char *e_reduceempty = N_("E998: Reduce of an empty %s with no initial value"); @@ -997,8 +999,8 @@ static void f_count(typval_T *argvars, typval_T *rettv, EvalFuncData fptr) n = count_dict(argvars[0].vval.v_dict, &argvars[1], ic); } } - } else { - semsg(_(e_listdictarg), "count()"); + } else if (!error) { + semsg(_(e_argument_of_str_must_be_list_string_or_dictionary), "count()"); } rettv->vval.v_number = n; } diff --git a/test/old/testdir/test_functions.vim b/test/old/testdir/test_functions.vim index 74f9143ca0..e286090018 100644 --- a/test/old/testdir/test_functions.vim +++ b/test/old/testdir/test_functions.vim @@ -1627,7 +1627,8 @@ func Test_count() call assert_equal(2, count("fooooo", "oo")) call assert_equal(0, count("foo", "")) - call assert_fails('call count(0, 0)', 'E712:') + call assert_fails('call count(0, 0)', 'E706:') + call assert_fails('call count("", "", {})', ['E728:', 'E728:']) endfunc func Test_changenr() |