Mercurial > vim
comparison src/testdir/test_vim9_script.vim @ 19785:99248f0ff29d v8.2.0449
patch 8.2.0449: Vim9: crash if return type is invalid
Commit: https://github.com/vim/vim/commit/cf3f8bf4ddfbc0f5ce53f0c9270dc15567f4feea
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Mar 26 13:15:42 2020 +0100
patch 8.2.0449: Vim9: crash if return type is invalid
Problem: Vim9: crash if return type is invalid. (Yegappan Lakshmanan)
Solution: Always return some type, not NULL.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 26 Mar 2020 13:30:04 +0100 |
parents | 4174c4da6ff7 |
children | 906269bf83d5 |
comparison
equal
deleted
inserted
replaced
19784:39dbaf2eec63 | 19785:99248f0ff29d |
---|---|
267 def Test_return_type_wrong() | 267 def Test_return_type_wrong() |
268 CheckScriptFailure(['def Func(): number', 'return "a"', 'enddef'], 'expected number but got string') | 268 CheckScriptFailure(['def Func(): number', 'return "a"', 'enddef'], 'expected number but got string') |
269 CheckScriptFailure(['def Func(): string', 'return 1', 'enddef'], 'expected string but got number') | 269 CheckScriptFailure(['def Func(): string', 'return 1', 'enddef'], 'expected string but got number') |
270 CheckScriptFailure(['def Func(): void', 'return "a"', 'enddef'], 'expected void but got string') | 270 CheckScriptFailure(['def Func(): void', 'return "a"', 'enddef'], 'expected void but got string') |
271 CheckScriptFailure(['def Func()', 'return "a"', 'enddef'], 'expected void but got string') | 271 CheckScriptFailure(['def Func()', 'return "a"', 'enddef'], 'expected void but got string') |
272 | |
273 CheckScriptFailure(['def Func(): list', 'return []', 'enddef'], 'E1008:') | |
274 CheckScriptFailure(['def Func(): dict', 'return {}', 'enddef'], 'E1008:') | |
272 enddef | 275 enddef |
273 | 276 |
274 def Test_arg_type_wrong() | 277 def Test_arg_type_wrong() |
275 CheckScriptFailure(['def Func3(items: list)', 'echo "a"', 'enddef'], 'E1008: Missing <type>') | 278 CheckScriptFailure(['def Func3(items: list)', 'echo "a"', 'enddef'], 'E1008: Missing <type>') |
276 enddef | 279 enddef |