patch 8.2.1527: Vim9: cannot use a function name at script level

Problem:    Vim9: cannot use a function name as a function reference at script
            level.
Solution:   Check if a name is a function name. (closes #6789)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 4ff0fd7..e8e7668 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1668,6 +1668,17 @@
   CheckScriptSuccess(lines)
 enddef
 
+def Test_epxr7_funcref()
+  let lines =<< trim END
+    def RetNumber(): number
+      return 123
+    enddef
+    let FuncRef = RetNumber
+    assert_equal(123, FuncRef())
+  END
+  CheckDefAndScriptSuccess(lines)
+enddef
+
 def Test_expr7_dict()
   # dictionary
   assert_equal(g:dict_empty, {})
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 245817b..952b675 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1684,8 +1684,9 @@
   delete('Xscript.vim')
 enddef
 
-" Check that when searcing for "FilterFunc" it doesn't find the import in the
-" script where FastFilter() is called from.
+" Check that when searching for "FilterFunc" it finds the import in the
+" script where FastFilter() is called from, both as a string and as a direct
+" function reference.
 def Test_vim9script_funcref_other_script()
   let filterLines =<< trim END
     vim9script
@@ -1695,22 +1696,26 @@
     export def FastFilter(): list<number>
       return range(10)->filter('FilterFunc')
     enddef
+    export def FastFilterDirect(): list<number>
+      return range(10)->filter(FilterFunc)
+    enddef
   END
   writefile(filterLines, 'Xfilter.vim')
 
   let lines =<< trim END
     vim9script
-    import {FilterFunc, FastFilter} from './Xfilter.vim'
+    import {FilterFunc, FastFilter, FastFilterDirect} from './Xfilter.vim'
     def Test()
       let x: list<number> = FastFilter()
     enddef
     Test()
+    def TestDirect()
+      let x: list<number> = FastFilterDirect()
+    enddef
+    TestDirect()
   END
-  writefile(lines, 'Ximport.vim')
-  assert_fails('source Ximport.vim', 'E121:')
-
+  CheckScriptSuccess(lines)
   delete('Xfilter.vim')
-  delete('Ximport.vim')
 enddef
 
 def Test_vim9script_reload_delfunc()