Mercurial > vim
comparison src/testdir/test_vim9_func.vim @ 20140:39a18a0df429 v8.2.0625
patch 8.2.0625: Vim9: confusing error when calling unknown function
Commit: https://github.com/vim/vim/commit/1df8b3fb04ce8732a0be680273c95eb4e9f5e85d
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Apr 23 18:13:23 2020 +0200
patch 8.2.0625: Vim9: confusing error when calling unknown function
Problem: Vim9: confusing error when calling unknown function.
Solution: Give error while compiling.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 23 Apr 2020 18:15:04 +0200 |
parents | 8fb1cf4c44d5 |
children | fe8d0a4344df |
comparison
equal
deleted
inserted
replaced
20139:92f2b807c515 | 20140:39a18a0df429 |
---|---|
191 call assert_fails('so Xdef', 'E1006:') | 191 call assert_fails('so Xdef', 'E1006:') |
192 call delete('Xdef') | 192 call delete('Xdef') |
193 enddef | 193 enddef |
194 | 194 |
195 def Test_call_func_defined_later() | 195 def Test_call_func_defined_later() |
196 call assert_equal('one', DefinedLater('one')) | 196 call assert_equal('one', g:DefinedLater('one')) |
197 call assert_fails('call NotDefined("one")', 'E117:') | 197 call assert_fails('call NotDefined("one")', 'E117:') |
198 enddef | 198 enddef |
199 | |
200 func DefinedLater(arg) | |
201 return a:arg | |
202 endfunc | |
203 | |
204 def Test_call_funcref() | |
205 assert_equal(3, g:SomeFunc('abc')) | |
206 assert_fails('NotAFunc()', 'E117:') | |
207 assert_fails('g:NotAFunc()', 'E117:') | |
208 enddef | |
209 | |
210 let SomeFunc = function('len') | |
211 let NotAFunc = 'text' | |
199 | 212 |
200 def CombineFuncrefTypes() | 213 def CombineFuncrefTypes() |
201 " same arguments, different return type | 214 " same arguments, different return type |
202 let Ref1: func(bool): string | 215 let Ref1: func(bool): string |
203 let Ref2: func(bool): number | 216 let Ref2: func(bool): number |
215 let Refb2: func(string, number): number | 228 let Refb2: func(string, number): number |
216 let Refb3: func(any, any): number | 229 let Refb3: func(any, any): number |
217 Refb3 = g:cond ? Refb1 : Refb2 | 230 Refb3 = g:cond ? Refb1 : Refb2 |
218 enddef | 231 enddef |
219 | 232 |
220 func DefinedLater(arg) | |
221 return a:arg | |
222 endfunc | |
223 | |
224 def FuncWithForwardCall() | 233 def FuncWithForwardCall() |
225 return DefinedEvenLater("yes") | 234 return g:DefinedEvenLater("yes") |
226 enddef | 235 enddef |
227 | 236 |
228 def DefinedEvenLater(arg: string): string | 237 def DefinedEvenLater(arg: string): string |
229 return arg | 238 return arg |
230 enddef | 239 enddef |
370 call assert_fails('so Xdef', 'E1027:') | 379 call assert_fails('so Xdef', 'E1027:') |
371 call writefile(['def Func2(): string', 'return "Func2"', 'enddef'], 'Xdef') | 380 call writefile(['def Func2(): string', 'return "Func2"', 'enddef'], 'Xdef') |
372 so Xdef | 381 so Xdef |
373 call delete('Xdef') | 382 call delete('Xdef') |
374 | 383 |
375 call assert_equal(0, Func0()) | 384 call assert_equal(0, g:Func0()) |
376 call assert_equal('Func1', Func1()) | 385 call assert_equal('Func1', g:Func1()) |
377 call assert_equal('Func2', Func2()) | 386 call assert_equal('Func2', g:Func2()) |
378 | 387 |
379 delfunc! Func0 | 388 delfunc! Func0 |
380 delfunc! Func1 | 389 delfunc! Func1 |
381 delfunc! Func2 | 390 delfunc! Func2 |
382 enddef | 391 enddef |