forked from aniani/vim
patch 8.1.1816: cannot use a user defined function as a method
Problem: Cannot use a user defined function as a method. Solution: Pass the base as the first argument to the user defined function after "->". (partly by FUJIWARA Takuya)
This commit is contained in:
@@ -47,7 +47,7 @@ func FuncWithRef(a)
|
||||
endfunc
|
||||
|
||||
func Test_user_func()
|
||||
let g:FuncRef=function("FuncWithRef")
|
||||
let g:FuncRef = function("FuncWithRef")
|
||||
let g:counter = 0
|
||||
inoremap <expr> ( ListItem()
|
||||
inoremap <expr> [ ListReset()
|
||||
@@ -62,6 +62,14 @@ func Test_user_func()
|
||||
call assert_equal(9, g:retval)
|
||||
call assert_equal(333, g:FuncRef(333))
|
||||
|
||||
let g:retval = "nop"
|
||||
call assert_equal('xxx4asdf', "xxx"->Table(4, "asdf"))
|
||||
call assert_equal('fail', 45->Compute(0, "retval"))
|
||||
call assert_equal('nop', g:retval)
|
||||
call assert_equal('ok', 45->Compute(5, "retval"))
|
||||
call assert_equal(9, g:retval)
|
||||
" call assert_equal(333, 333->g:FuncRef())
|
||||
|
||||
enew
|
||||
|
||||
normal oXX+-XX
|
||||
@@ -144,3 +152,11 @@ func Test_default_arg()
|
||||
\ .. " endfunction",
|
||||
\ execute('func Args2'))
|
||||
endfunc
|
||||
|
||||
func s:addFoo(lead)
|
||||
return a:lead .. 'foo'
|
||||
endfunc
|
||||
|
||||
func Test_user_method()
|
||||
eval 'bar'->s:addFoo()->assert_equal('barfoo')
|
||||
endfunc
|
||||
|
Reference in New Issue
Block a user