patch 8.2.3646: using <sfile> in a function gives an unexpected result

Problem:    Using <sfile> in a function gives an unexpected result.
Solution:   Give an error in a Vim9 function. (issue #9189)
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index b3890ce..a0acac5 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -915,6 +915,14 @@
   CheckDefAndScriptFailure2(['expand("a", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2')
   CheckDefAndScriptFailure2(['expand("a", true, 2)'], 'E1013: Argument 3: type mismatch, expected bool but got number', 'E1212: Bool required for argument 3')
   expand('')->assert_equal('')
+
+  var caught = false
+  try
+    echo expand("<sfile>")
+  catch /E1245:/
+    caught = true
+  endtry
+  assert_true(caught)
 enddef
 
 def Test_expandcmd()