@@ -625,5 +625,37 @@ func Test_defer_quitall()
625625 call assert_false (filereadable (' XQuitallTwo' ))
626626endfunc
627627
628+ func FuncIndex (idx, val)
629+ call writefile ([a: idx .. ' : ' .. a: val ], ' Xentry' .. a: idx , ' D' )
630+ return a: val == ' c'
631+ endfunc
632+
633+ def DefIndex (idx: number , val: string ): bool
634+ call writefile ([idx .. ' : ' .. val], ' Xentry' .. idx, ' D' )
635+ return val == ' c'
636+ enddef
637+
638+ def Test_defer_in_funcref ()
639+ assert_equal (2 , indexof ([' a' , ' b' , ' c' ], function (' g:FuncIndex' )))
640+ assert_false (filereadable (' Xentry0' ))
641+ assert_false (filereadable (' Xentry1' ))
642+ assert_false (filereadable (' Xentry2' ))
643+
644+ assert_equal (2 , indexof ([' a' , ' b' , ' c' ], g: DefIndex ))
645+ assert_false (filereadable (' Xentry0' ))
646+ assert_false (filereadable (' Xentry1' ))
647+ assert_false (filereadable (' Xentry2' ))
648+
649+ assert_equal (2 , indexof ([' a' , ' b' , ' c' ], function (' g:DefIndex' )))
650+ assert_false (filereadable (' Xentry0' ))
651+ assert_false (filereadable (' Xentry1' ))
652+ assert_false (filereadable (' Xentry2' ))
653+
654+ assert_equal (2 , indexof ([' a' , ' b' , ' c' ], funcref (g: DefIndex )))
655+ assert_false (filereadable (' Xentry0' ))
656+ assert_false (filereadable (' Xentry1' ))
657+ assert_false (filereadable (' Xentry2' ))
658+ enddef
659+
628660
629661" vim: shiftwidth = 2 sts = 2 expandtab
0 commit comments