Mercurial > vim
diff src/testdir/test_vim9_func.vim @ 26594:b12d8a5af20e v8.2.3826
patch 8.2.3826: Vim9: using "g:Func" as funcref doesn't work in :def function
Commit: https://github.com/vim/vim/commit/b15cf44c1d9c92a2ac07cff415071e31a9ad88fa
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Dec 16 15:49:43 2021 +0000
patch 8.2.3826: Vim9: using "g:Func" as funcref doesn't work in :def function
Problem: Vim9: using "g:Func" as a funcref does not work in a :def
function.
Solution: Include "g:" in the function name. (closes #9336)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 16 Dec 2021 17:00:05 +0100 |
parents | 7f90bde42bcc |
children | d54a39ec6d43 |
line wrap: on
line diff
--- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -1232,11 +1232,23 @@ def Test_set_opfunc_to_global_function() g:result = getreg('"')->count(' ') return '' enddef + # global function works at script level &operatorfunc = g:CountSpaces new 'a b c d e'->setline(1) feedkeys("g@_", 'x') assert_equal(4, g:result) + + &operatorfunc = '' + g:result = 0 + # global function works in :def function + def Func() + &operatorfunc = g:CountSpaces + enddef + Func() + feedkeys("g@_", 'x') + assert_equal(4, g:result) + bwipe! END CheckScriptSuccess(lines)