Mercurial > vim
diff src/testdir/test_vim9_assign.vim @ 27728:fdc841530372 v8.2.4390
patch 8.2.4390: Vim9: list from declaration with inferred type not set
Commit: https://github.com/vim/vim/commit/e88c6b7a5d8b24f8aa9a3e976b78654bae293ae4
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Feb 15 15:37:11 2022 +0000
patch 8.2.4390: Vim9: list from declaration with inferred type not set
Problem: Vim9: list from declaration with inferred type does not set the
type on the value.
Solution: When inferring the type in a variable declaration also set the
type of the list or dictionary. (closes #9705) Do not set the
type when the member is "any".
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 15 Feb 2022 16:45:03 +0100 |
parents | 4097434c7c67 |
children | d754ac2f5ac5 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_assign.vim +++ b/src/testdir/test_vim9_assign.vim @@ -1885,6 +1885,19 @@ def Test_var_declaration_fails() v9.CheckDefFailure(['const foo: number'], 'E1021:') enddef +def Test_var_declaration_inferred() + # check that type is set on the list so that extend() fails + var lines =<< trim END + vim9script + def GetList(): list<number> + var l = [1, 2, 3] + return l + enddef + echo GetList()->extend(['x']) + END + v9.CheckScriptFailure(lines, 'E1013:', 6) +enddef + def Test_script_local_in_legacy() # OK to define script-local later but before compiling var lines =<< trim END