Mercurial > vim
changeset 23112:892303d45d2a v8.2.2102
patch 8.2.2102: Vim9: not all error messages tested
Commit: https://github.com/vim/vim/commit/5402175815a9b9b05772f339efa3ec9f73bdae09
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Dec 6 18:50:36 2020 +0100
patch 8.2.2102: Vim9: not all error messages tested
Problem: Vim9: not all error messages tested.
Solution: Add a few test cases.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 06 Dec 2020 19:00:04 +0100 |
parents | e0c700860400 |
children | 5ecace52c756 |
files | src/testdir/test_vim9_func.vim src/version.c |
diffstat | 2 files changed, 52 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -217,22 +217,47 @@ def Test_nested_function() CheckDefFailure(['def s:Nested()', 'enddef'], 'E1075:') CheckDefFailure(['def b:Nested()', 'enddef'], 'E1075:') - CheckDefFailure([ - 'def Outer()', - ' def Inner()', - ' # comment', - ' enddef', - ' def Inner()', - ' enddef', - 'enddef'], 'E1073:') - CheckDefFailure([ - 'def Outer()', - ' def Inner()', - ' # comment', - ' enddef', - ' def! Inner()', - ' enddef', - 'enddef'], 'E1117:') + var lines =<< trim END + def Outer() + def Inner() + # comment + enddef + def Inner() + enddef + enddef + END + CheckDefFailure(lines, 'E1073:') + + lines =<< trim END + def Outer() + def Inner() + # comment + enddef + def! Inner() + enddef + enddef + END + CheckDefFailure(lines, 'E1117:') + + # nested function inside conditional + # TODO: should it work when "thecount" is inside the "if"? + lines =<< trim END + vim9script + var thecount = 0 + if true + def Test(): number + def TheFunc(): number + thecount += 1 + return thecount + enddef + return TheFunc() + enddef + endif + defcompile + assert_equal(1, Test()) + assert_equal(2, Test()) + END + CheckScriptSuccess(lines) enddef func Test_call_default_args_from_func() @@ -315,6 +340,15 @@ def Test_nested_def_list() assert_true(funcs->index('def DefListAll()') >= 0) assert_true(funcs->index('def DefListOne()') >= 0) assert_true(funcs->index('def DefListMatches()') >= 0) + + var lines =<< trim END + vim9script + def Func() + def +Func+ + enddef + defcompile + END + CheckScriptFailure(lines, 'E476:', 1) enddef def Test_global_local_function()