patch 8.2.2645: using inline function is not properly tested
Problem: Using inline function is not properly tested.
Solution: Add test cases, esp. for errors. Minor code improvements.
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index c181b20..7a9b1e4 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -1961,6 +1961,11 @@
return 'no'
})
assert_equal(['no', 'yes', 'no'], dll)
+
+ sandbox var Safe = (nr: number): number => {
+ return nr + 7
+ }
+ assert_equal(10, Safe(3))
END
CheckDefAndScriptSuccess(lines)
@@ -1968,6 +1973,34 @@
map([1, 2], (k, v) => { redrawt })
END
CheckDefAndScriptFailure(lines, 'E488')
+
+ lines =<< trim END
+ var Func = (nr: int) => {
+ echo nr
+ }
+ END
+ CheckDefAndScriptFailure(lines, 'E1010', 1)
+
+ lines =<< trim END
+ var Func = (nr: number): int => {
+ return nr
+ }
+ END
+ CheckDefAndScriptFailure(lines, 'E1010', 1)
+
+ lines =<< trim END
+ var Func = (nr: number): int => {
+ return nr
+ END
+ CheckDefAndScriptFailure(lines, 'E1171', 1) # line nr is function start
+
+ lines =<< trim END
+ vim9script
+ var Func = (nr: number): int => {
+ var ll =<< ENDIT
+ nothing
+ END
+ CheckScriptFailure(lines, 'E1145: Missing heredoc end marker: ENDIT', 2)
enddef
def NewLambdaWithComments(): func
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 2697c29..2755412 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -86,6 +86,16 @@
enddef
END
CheckScriptFailure(lines, 'E1152:', 4)
+
+ lines =<< trim END
+ def Ok()
+ echo 'hello'
+ enddef | echo 'there'
+ def Bad()
+ echo 'hello'
+ enddef there
+ END
+ CheckScriptFailure(lines, 'E1173: Text found after enddef: there', 6)
enddef
def Test_missing_endfunc_enddef()