Mercurial > vim
changeset 31770:8d2bfc85e3c5 v9.0.1217
patch 9.0.1217: using an object member in a closure doesn't work
Commit: https://github.com/vim/vim/commit/486fc25a295464d107264b63997bdbe3745e3c71
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 18 14:51:07 2023 +0000
patch 9.0.1217: using an object member in a closure doesn't work
Problem: Using an object member in a closure doesn't work.
Solution: Initialize lv_loop_depth. (closes https://github.com/vim/vim/issues/11840)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 18 Jan 2023 16:00:06 +0100 |
parents | a169126bf2a3 |
children | 03c8e327f5ee |
files | src/testdir/test_vim9_class.vim src/version.c src/vim9compile.c |
diffstat | 3 files changed, 21 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test_vim9_class.vim +++ b/src/testdir/test_vim9_class.vim @@ -1214,5 +1214,23 @@ def Test_abstract_class() v9.CheckScriptFailure(lines, 'E1316:') enddef +def Test_closure_in_class() + var lines =<< trim END + vim9script + + class Foo + this.y: list<string> = ['B'] + + def new() + g:result = filter(['A', 'B'], (_, v) => index(this.y, v) == -1) + enddef + endclass + + Foo.new() + assert_equal(['A'], g:result) + END + v9.CheckScriptSuccess(lines) +enddef + " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker