patch 8.2.2881: various pieces of code not covered by tests

Problem:    Various pieces of code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8245)
diff --git a/src/testdir/test_user_func.vim b/src/testdir/test_user_func.vim
index a58aa64..4b8ec99 100644
--- a/src/testdir/test_user_func.vim
+++ b/src/testdir/test_user_func.vim
@@ -405,6 +405,7 @@
   let l = join(lines, "\n") . "\n"
   exe l
   call assert_fails('exe l', 'E717:')
+  call assert_fails('call feedkeys(":func d.F1()\<CR>", "xt")', 'E717:')
 
   " Define an autoload function with an incorrect file name
   call writefile(['func foo#Bar()', 'return 1', 'endfunc'], 'Xscript')
@@ -420,6 +421,11 @@
   call assert_fails('delfunction Xabc', 'E130:')
   let d = {'a' : 10}
   call assert_fails('delfunc d.a', 'E718:')
+  func d.fn()
+    return 1
+  endfunc
+  delfunc d.fn
+  call assert_equal({'a' : 10}, d)
 endfunc
 
 " Test for calling return outside of a function
@@ -451,11 +457,12 @@
     return len(self)
   endfunc
 
-  call assert_equal("{'a': 'b', 'somefunc': function('2')}", string(mydict))
+  call assert_equal("{'a': 'b', 'somefunc': function('3')}", string(mydict))
   call assert_equal(2, mydict.somefunc())
   call assert_match("^\n   function \\d\\\+() dict"
   \              .. "\n1      return len(self)"
   \              .. "\n   endfunction$", execute('func mydict.somefunc'))
+  call assert_fails('call mydict.nonexist()', 'E716:')
 endfunc
 
 func Test_func_range()