1
0
forked from aniani/vim

patch 7.4.1577

Problem:    Cannot pass "dict.Myfunc" around as a partial.
Solution:   Create a partial when expected.
This commit is contained in:
Bram Moolenaar
2016-03-15 19:33:34 +01:00
parent 927030af23
commit ab1fa3955f
3 changed files with 72 additions and 7 deletions

View File

@@ -50,3 +50,21 @@ func Test_partial_dict()
call assert_equal("hello/xxx/yyy", Cb("xxx", "yyy"))
call assert_fails('Cb("fff")', 'E492:')
endfunc
func Test_partial_implicit()
let dict = {'name': 'foo'}
func dict.MyFunc(arg) dict
return self.name . '/' . a:arg
endfunc
call assert_equal('foo/bar', dict.MyFunc('bar'))
call assert_fails('let func = dict.MyFunc', 'E704:')
let Func = dict.MyFunc
call assert_equal('foo/aaa', Func('aaa'))
let Func = function(dict.MyFunc, ['bbb'])
call assert_equal('foo/bbb', Func())
call assert_fails('call function(dict.MyFunc, ["bbb"], dict)', 'E924:')
endfunc