Mercurial > vim
diff src/testdir/test_method.vim @ 17674:06c3e15ad84d v8.1.1834
patch 8.1.1834: cannot use a lambda as a method
commit https://github.com/vim/vim/commit/22a0c0c4ecd23b6c43f79ba9b92899ca0b426e29
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Aug 9 23:25:08 2019 +0200
patch 8.1.1834: cannot use a lambda as a method
Problem: Cannot use a lambda as a method.
Solution: Implement ->{lambda}(). (closes https://github.com/vim/vim/issues/4768)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 09 Aug 2019 23:30:05 +0200 |
parents | da7890e3359b |
children | 14ac8c31e598 |
line wrap: on
line diff
--- a/src/testdir/test_method.vim +++ b/src/testdir/test_method.vim @@ -122,3 +122,13 @@ func Test_method_syntax() call assert_fails('eval [1, 2, 3]->sort ()', 'E274:') call assert_fails('eval [1, 2, 3]-> sort ()', 'E260:') endfunc + +func Test_method_lambda() + eval "text"->{x -> x .. " extended"}()->assert_equal('text extended') + eval "text"->{x, y -> x .. " extended " .. y}('more')->assert_equal('text extended more') + + call assert_fails('eval "text"->{x -> x .. " extended"} ()', 'E274:') + + " todo: lambda accepts more arguments than it consumes + " call assert_fails('eval "text"->{x -> x .. " extended"}("more")', 'E99:') +endfunc