mirror of
https://github.com/vim/vim.git
synced 2025-09-30 04:44:14 -04:00
patch 8.2.2488: json_encode() gives generic argument error
Problem: json_encode() gives generic argument error. Solution: Mention the type that can't be encoded. (issue #7802)
This commit is contained in:
@@ -357,3 +357,5 @@ EXTERN char e_cannot_split_window_when_closing_buffer[]
|
||||
INIT(= N_("E1159: Cannot split a window when closing the buffer"));
|
||||
EXTERN char e_cannot_use_default_for_variable_arguments[]
|
||||
INIT(= N_("E1160: Cannot use a default for variable arguments"));
|
||||
EXTERN char e_cannot_json_encode_str[]
|
||||
INIT(= N_("E1161: Cannot json encode a %s"));
|
||||
|
@@ -230,8 +230,7 @@ json_encode_item(garray_T *gap, typval_T *val, int copyID, int options)
|
||||
case VAR_PARTIAL:
|
||||
case VAR_JOB:
|
||||
case VAR_CHANNEL:
|
||||
// no JSON equivalent TODO: better error
|
||||
emsg(_(e_invarg));
|
||||
semsg(_(e_cannot_json_encode_str), vartype_name(val->v_type));
|
||||
return FAIL;
|
||||
|
||||
case VAR_BLOB:
|
||||
|
@@ -107,8 +107,8 @@ func Test_json_encode()
|
||||
call assert_equal('"café"', json_encode("caf\xe9"))
|
||||
let &encoding = save_encoding
|
||||
|
||||
call assert_fails('echo json_encode(function("tr"))', 'E474:')
|
||||
call assert_fails('echo json_encode([function("tr")])', 'E474:')
|
||||
call assert_fails('echo json_encode(function("tr"))', 'E1161: Cannot json encode a func')
|
||||
call assert_fails('echo json_encode([function("tr")])', 'E1161: Cannot json encode a func')
|
||||
|
||||
call assert_equal('{"a":""}', json_encode({'a': test_null_string()}))
|
||||
call assert_equal('{"a":[]}', json_encode({"a": test_null_list()}))
|
||||
@@ -246,8 +246,8 @@ func Test_js_encode()
|
||||
|
||||
call assert_equal(s:jsonvals, js_encode(s:varvals))
|
||||
|
||||
call assert_fails('echo js_encode(function("tr"))', 'E474:')
|
||||
call assert_fails('echo js_encode([function("tr")])', 'E474:')
|
||||
call assert_fails('echo js_encode(function("tr"))', 'E1161: Cannot json encode a func')
|
||||
call assert_fails('echo js_encode([function("tr")])', 'E1161: Cannot json encode a func')
|
||||
|
||||
silent! let res = js_encode(function("tr"))
|
||||
call assert_equal("", res)
|
||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2488,
|
||||
/**/
|
||||
2487,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user