11735bc98SBram Moolenaar" Test binding arguments to a Funcref. 21735bc98SBram Moolenaar 31735bc98SBram Moolenaarfunc MyFunc(arg1, arg2, arg3) 41735bc98SBram Moolenaar return a:arg1 . '/' . a:arg2 . '/' . a:arg3 51735bc98SBram Moolenaarendfunc 61735bc98SBram Moolenaar 71735bc98SBram Moolenaarfunc MySort(up, one, two) 81735bc98SBram Moolenaar if a:one == a:two 91735bc98SBram Moolenaar return 0 101735bc98SBram Moolenaar endif 111735bc98SBram Moolenaar if a:up 12*790500a8SBram Moolenaar return a:one > a:two ? 1 : -1 131735bc98SBram Moolenaar endif 14*790500a8SBram Moolenaar return a:one < a:two ? 1 : -1 151735bc98SBram Moolenaarendfunc 161735bc98SBram Moolenaar 171735bc98SBram Moolenaarfunc Test_partial_args() 181735bc98SBram Moolenaar let Cb = function('MyFunc', ["foo", "bar"]) 191735bc98SBram Moolenaar call assert_equal("foo/bar/xxx", Cb("xxx")) 201735bc98SBram Moolenaar call assert_equal("foo/bar/yyy", call(Cb, ["yyy"])) 211735bc98SBram Moolenaar 221735bc98SBram Moolenaar let Sort = function('MySort', [1]) 231735bc98SBram Moolenaar call assert_equal([1, 2, 3], sort([3, 1, 2], Sort)) 241735bc98SBram Moolenaar let Sort = function('MySort', [0]) 251735bc98SBram Moolenaar call assert_equal([3, 2, 1], sort([3, 1, 2], Sort)) 261735bc98SBram Moolenaarendfunc 271735bc98SBram Moolenaar 281735bc98SBram Moolenaarfunc MyDictFunc(arg1, arg2) dict 291735bc98SBram Moolenaar return self.name . '/' . a:arg1 . '/' . a:arg2 301735bc98SBram Moolenaarendfunc 311735bc98SBram Moolenaar 321735bc98SBram Moolenaarfunc Test_partial_dict() 331735bc98SBram Moolenaar let dict = {'name': 'hello'} 341735bc98SBram Moolenaar let Cb = function('MyDictFunc', ["foo", "bar"], dict) 351735bc98SBram Moolenaar call assert_equal("hello/foo/bar", Cb()) 361735bc98SBram Moolenaar call assert_fails('Cb("xxx")', 'E492:') 371735bc98SBram Moolenaar let Cb = function('MyDictFunc', ["foo"], dict) 381735bc98SBram Moolenaar call assert_equal("hello/foo/xxx", Cb("xxx")) 391735bc98SBram Moolenaar call assert_fails('Cb()', 'E492:') 401735bc98SBram Moolenaar let Cb = function('MyDictFunc', dict) 411735bc98SBram Moolenaar call assert_equal("hello/xxx/yyy", Cb("xxx", "yyy")) 421735bc98SBram Moolenaar call assert_fails('Cb()', 'E492:') 431735bc98SBram Moolenaarendfunc 44