diff options
author | Patrick <patrick@bitscope.com> | 2016-07-13 16:49:22 +1000 |
---|---|---|
committer | Patrick <patrick@bitscope.com> | 2016-07-13 17:47:46 +1000 |
commit | a3dc7ef44577dc4708ac7b4c329c1620770aadc3 (patch) | |
tree | 7ad18fa84753c5c5302e74f949cd0581b5c4ea58 /src | |
parent | dcbd1c7b13e98766754c4e75d3bb59021248217e (diff) | |
download | rneovim-a3dc7ef44577dc4708ac7b4c329c1620770aadc3.tar.gz rneovim-a3dc7ef44577dc4708ac7b4c329c1620770aadc3.tar.bz2 rneovim-a3dc7ef44577dc4708ac7b4c329c1620770aadc3.zip |
vim-patch:7.4.1546
Problem: Sticky type checking is more annoying than useful.
Solution: Remove the error for changing a variable type.
https://github.com/vim/vim/commit/f6f32c38bf3319144a84a01a154c8c91939e7acf
Note: There are a bunch of other changes to eval.txt that I believe are
N/A and not related to this patch.
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/eval.c | 15 | ||||
-rw-r--r-- | src/nvim/testdir/Makefile | 1 | ||||
-rw-r--r-- | src/nvim/testdir/test_assign.vim | 9 | ||||
-rw-r--r-- | src/nvim/version.c | 2 |
4 files changed, 12 insertions, 15 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 47d44b148a..a43a389478 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -18886,19 +18886,6 @@ set_var ( || 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)) - && !((v->di_tv.v_type == VAR_NUMBER - || v->di_tv.v_type == VAR_FLOAT) - && (tv->v_type == VAR_NUMBER - || tv->v_type == VAR_FLOAT)) - ) { - EMSG2(_("E706: Variable type mismatch for: %s"), name); - return; - } // Handle setting internal v: variables separately where needed to // prevent changing the type. @@ -18908,7 +18895,7 @@ set_var ( if (copy || tv->v_type != VAR_STRING) v->di_tv.vval.v_string = vim_strsave(get_tv_string(tv)); else { - /* Take over the string to avoid an extra alloc/free. */ + // Take over the string to avoid an extra alloc/free. v->di_tv.vval.v_string = tv->vval.v_string; tv->vval.v_string = NULL; } diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index 4b0b5e8d26..30923101bc 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -33,6 +33,7 @@ SCRIPTS := \ # Tests using runtest.vim.vim. # Keep test_alot*.res as the last one, sort the others. NEW_TESTS = \ + test_assign.res \ test_cursor_func.res \ test_hardcopy.res \ test_help_tagjump.res \ diff --git a/src/nvim/testdir/test_assign.vim b/src/nvim/testdir/test_assign.vim new file mode 100644 index 0000000000..3d2e7a8998 --- /dev/null +++ b/src/nvim/testdir/test_assign.vim @@ -0,0 +1,9 @@ +" Test for assignment + +func Test_no_type_checking() + let v = 1 + let v = [1,2,3] + let v = {'a':1, 'b':2} + let v = 3.4 + let v = 'hello' +endfunc diff --git a/src/nvim/version.c b/src/nvim/version.c index 966e4f9b4f..e45d61014e 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -153,7 +153,7 @@ static int included_patches[] = { // 1549, // 1548, // 1547, - // 1546, + 1546, // 1545 NA // 1544 NA // 1543 NA |