From a3dc7ef44577dc4708ac7b4c329c1620770aadc3 Mon Sep 17 00:00:00 2001 From: Patrick Date: Wed, 13 Jul 2016 16:49:22 +1000 Subject: 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. --- src/nvim/eval.c | 15 +-------------- src/nvim/testdir/Makefile | 1 + src/nvim/testdir/test_assign.vim | 9 +++++++++ src/nvim/version.c | 2 +- 4 files changed, 12 insertions(+), 15 deletions(-) create mode 100644 src/nvim/testdir/test_assign.vim (limited to 'src') 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 -- cgit From 98fb0f12c4c447b70bbef3004bb1657887537d5c Mon Sep 17 00:00:00 2001 From: Patrick Date: Wed, 13 Jul 2016 17:56:58 +1000 Subject: vim-patch:7.4.1548 Problem: Two tests fail. Solution: Adjust the expected error number. Remove check for type. https://github.com/vim/vim/commit/5a2800fd141a8fc0c80cdf421dcb76001a22327f --- src/nvim/version.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/nvim/version.c b/src/nvim/version.c index e45d61014e..5fdbb7db57 100644 --- a/src/nvim/version.c +++ b/src/nvim/version.c @@ -151,7 +151,7 @@ static int included_patches[] = { 1551, 1550, // 1549, - // 1548, + 1548, // 1547, 1546, // 1545 NA -- cgit From 9c3bd3e427686855a8e75403d1715dd4b99ffa8a Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Mon, 18 Jul 2016 11:17:16 -0400 Subject: test: Update test_alot.vim These tests should be here, not in the Makefile. --- src/nvim/testdir/Makefile | 4 ---- src/nvim/testdir/test_alot.vim | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index 30923101bc..30f5170565 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -33,15 +33,11 @@ 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 \ test_langmap.res \ - test_menu.res \ test_syntax.res \ test_timers.res \ - test_unlet.res \ test_viml.res \ test_alot.res diff --git a/src/nvim/testdir/test_alot.vim b/src/nvim/testdir/test_alot.vim index 1d1da94bac..ad9b2cce8b 100644 --- a/src/nvim/testdir/test_alot.vim +++ b/src/nvim/testdir/test_alot.vim @@ -1,3 +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_cursor_func.vim +source test_menu.vim +source test_unlet.vim -- cgit