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