To: vim_dev@googlegroups.com Subject: Patch 8.2.0331 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.0331 Problem: Internal error when using test_void() and test_unknown(). (Dominique Pelle) Solution: Give a normal error. Files: src/evalfunc.c, src/testdir/test_functions.vim, src/testdir/test_vimscript.vim *** ../vim-8.2.0330/src/evalfunc.c 2020-02-26 16:15:31.068386966 +0100 --- src/evalfunc.c 2020-02-29 13:39:39.759674319 +0100 *************** *** 1890,1896 **** #endif case VAR_UNKNOWN: case VAR_VOID: ! internal_error("f_empty(UNKNOWN)"); n = TRUE; break; } --- 1890,1899 ---- #endif case VAR_UNKNOWN: case VAR_VOID: ! // Let's not use internal_error() here, otherwise ! // empty(test_unknown()) with ABORT_ON_INTERNAL_ERROR defined makes ! // Vim abort. ! semsg(_(e_intern2), "f_empty(UNKNOWN)"); n = TRUE; break; } *************** *** 8275,8281 **** case VAR_BLOB: n = VAR_TYPE_BLOB; break; case VAR_UNKNOWN: case VAR_VOID: ! internal_error("f_type(UNKNOWN)"); n = -1; break; } --- 8278,8287 ---- case VAR_BLOB: n = VAR_TYPE_BLOB; break; case VAR_UNKNOWN: case VAR_VOID: ! // Let's not use internal_error() here, otherwise ! // empty(test_unknown()) with ABORT_ON_INTERNAL_ERROR defined ! // makes Vim abort. ! semsg(_(e_intern2), "f_type(UNKNOWN)"); n = -1; break; } *** ../vim-8.2.0330/src/testdir/test_functions.vim 2020-02-27 21:32:38.681185130 +0100 --- src/testdir/test_functions.vim 2020-02-29 13:33:55.513048646 +0100 *************** *** 58,63 **** --- 58,66 ---- call assert_equal(0, empty(function('Test_empty'))) call assert_equal(0, empty(function('Test_empty', [0]))) + + call assert_fails("call empty(test_void())", 'E685:') + call assert_fails("call empty(test_unknown())", 'E685:') endfunc func Test_len() *** ../vim-8.2.0330/src/testdir/test_vimscript.vim 2020-02-21 17:54:41.834235694 +0100 --- src/testdir/test_vimscript.vim 2020-02-29 13:39:51.239628485 +0100 *************** *** 1165,1170 **** --- 1165,1172 ---- call assert_equal(v:t_none, type(v:none)) call assert_equal(v:t_none, type(v:null)) + call assert_fails("call type(test_void())", 'E685:') + call assert_fails("call type(test_unknown())", 'E685:') call assert_equal(0, 0 + v:false) call assert_equal(1, 0 + v:true) *** ../vim-8.2.0330/src/version.c 2020-02-28 22:51:51.107937519 +0100 --- src/version.c 2020-02-29 13:34:59.420793531 +0100 *************** *** 740,741 **** --- 740,743 ---- { /* Add new patch number below this line */ + /**/ + 331, /**/ -- In a world without fences, who needs Gates and Windows? /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///