mirror of
https://github.com/vim/vim.git
synced 2025-09-30 04:44:14 -04:00
patch 7.4.1157
Problem: type() does not work for v:true, v:none, etc. Solution: Add new type numbers.
This commit is contained in:
@@ -20157,6 +20157,13 @@ f_type(argvars, rettv)
|
||||
#ifdef FEAT_FLOAT
|
||||
case VAR_FLOAT: n = 5; break;
|
||||
#endif
|
||||
case VAR_SPECIAL:
|
||||
if (argvars[0].vval.v_number == VVAL_FALSE
|
||||
|| argvars[0].vval.v_number == VVAL_TRUE)
|
||||
n = 6;
|
||||
else
|
||||
n = 7;
|
||||
break;
|
||||
default: EMSG2(_(e_intern2), "f_type()"); n = 0; break;
|
||||
}
|
||||
rettv->vval.v_number = n;
|
||||
|
@@ -88,4 +88,18 @@ func Test_decode()
|
||||
call assert_equal(s:vard2x, jsondecode(s:jsond2))
|
||||
|
||||
call assert_equal(s:varvals, jsondecode(s:jsonvals))
|
||||
|
||||
call assert_equal(v:true, jsondecode('true'))
|
||||
call assert_equal(type(v:true), type(jsondecode('true')))
|
||||
call assert_equal(v:none, jsondecode(''))
|
||||
call assert_equal(type(v:none), type(jsondecode('')))
|
||||
call assert_equal("", jsondecode('""'))
|
||||
|
||||
call assert_fails('call jsondecode("\"")', "E474:")
|
||||
call assert_fails('call jsondecode("{-}")', "E474:")
|
||||
call assert_fails('call jsondecode("blah")', "E474:")
|
||||
call assert_fails('call jsondecode("true blah")', "E474:")
|
||||
call assert_fails('call jsondecode("<foobar>")', "E474:")
|
||||
call assert_fails('call jsondecode("[foobar]")', "E474:")
|
||||
call assert_fails('call jsondecode("{foobar}")', "E474:")
|
||||
endfunc
|
||||
|
@@ -921,6 +921,23 @@ func Test_curlies()
|
||||
call assert_equal(77, g:a['t'])
|
||||
endfunc
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Test 91: using type(). {{{1
|
||||
"-------------------------------------------------------------------------------
|
||||
|
||||
func Test_type()
|
||||
call assert_equal(0, type(0))
|
||||
call assert_equal(1, type(""))
|
||||
call assert_equal(2, type(function("tr")))
|
||||
call assert_equal(3, type([]))
|
||||
call assert_equal(4, type({}))
|
||||
call assert_equal(5, type(0.0))
|
||||
call assert_equal(6, type(v:false))
|
||||
call assert_equal(6, type(v:true))
|
||||
call assert_equal(7, type(v:none))
|
||||
call assert_equal(7, type(v:null))
|
||||
endfunc
|
||||
|
||||
"-------------------------------------------------------------------------------
|
||||
" Modelines {{{1
|
||||
" vim: ts=8 sw=4 tw=80 fdm=marker
|
||||
|
@@ -741,6 +741,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1157,
|
||||
/**/
|
||||
1156,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user