Mercurial > vim
changeset 8512:5104f96b6ecf v7.4.1546
commit https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Mar 12 19:03:59 2016 +0100
patch 7.4.1546
Problem: Sticky type checking is more annoying than useful.
Solution: Remove the error for changing a variable type.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 12 Mar 2016 19:15:04 +0100 |
parents | 2712bfe5d62e |
children | 494f16489145 |
files | runtime/doc/eval.txt src/eval.c src/testdir/test_alot.vim src/testdir/test_assign.vim src/version.c |
diffstat | 5 files changed, 26 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.4. Last change: 2016 Mar 08 +*eval.txt* For Vim version 7.4. Last change: 2016 Mar 12 VIM REFERENCE MANUAL by Bram Moolenaar @@ -113,16 +113,8 @@ to Float, printf() for Float to String a *E891* *E892* *E893* *E894* *E907* *E911* *E914* When expecting a Float a Number can also be used, but nothing else. - *E706* *sticky-type-checking* -You will get an error if you try to change the type of a variable. You need -to |:unlet| it first to avoid this error. String and Number are considered -equivalent though, as well are Float and Number. Consider this sequence of -commands: > - :let l = "string" - :let l = 44 " changes type from String to Number - :let l = [1, 2, 3] " error! l is still a Number - :let l = 4.4 " changes type from Number to Float - :let l = "string" " error! + *no-type-checking* +You will not get an error if you try to change the type of a variable. 1.2 Function references ~ @@ -1969,6 +1961,7 @@ islocked( {expr}) Number TRUE if {expr} isnan( {expr}) Number TRUE if {expr} is NaN items( {dict}) List key-value pairs in {dict} job_getchannel( {job}) Channel get the channel handle for {job} +job_info( {job}) Dict get information about {job} job_setoptions( {job}, {options}) none set options for {job} job_start( {command} [, {options}]) Job start a job job_status( {job}) String get the status of {job} @@ -4473,10 +4466,18 @@ job_getchannel({job}) *job_getchann < {only available when compiled with the |+job| feature} +job_info({job}) *job_info()* + Returns a Dictionary with information about {job}: + "status" what |job_status()| returns + "channel" what |job_getchannel()| returns + "exitval" only valid when "status" is "dead" + "exit-cb" function to be called on exit + "stoponexit" |job-stoponexit| + job_setoptions({job}, {options}) *job_setoptions()* Change options for {job}. Supported are: - "stoponexit" |job-stoponexit| - "exit-cb" |job-exit-cb| + "stoponexit" |job-stoponexit| + "exit-cb" |job-exit-cb| job_start({command} [, {options}]) *job_start()* Start a job and return a Job object. Unlike |system()| and
--- a/src/eval.c +++ b/src/eval.c @@ -22091,22 +22091,6 @@ set_var( if (var_check_ro(v->di_flags, name, FALSE) || tv_check_lock(v->di_tv.v_lock, name, FALSE)) return; - if (v->di_tv.v_type != tv->v_type - && !((v->di_tv.v_type == VAR_STRING - || v->di_tv.v_type == VAR_NUMBER) - && (tv->v_type == VAR_STRING - || tv->v_type == VAR_NUMBER)) -#ifdef FEAT_FLOAT - && !((v->di_tv.v_type == VAR_NUMBER - || v->di_tv.v_type == VAR_FLOAT) - && (tv->v_type == VAR_NUMBER - || tv->v_type == VAR_FLOAT)) -#endif - ) - { - EMSG2(_("E706: Variable type mismatch for: %s"), name); - return; - } /* * Handle setting internal v: variables separately where needed to
--- a/src/testdir/test_alot.vim +++ b/src/testdir/test_alot.vim @@ -1,6 +1,7 @@ " A series of tests that can run in one Vim invocation. " This makes testing go faster, since Vim doesn't need to restart. +source test_assign.vim source test_backspace_opt.vim source test_cursor_func.vim source test_delete.vim