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)