patch 8.2.4914: string interpolation in :def function may fail
Problem: String interpolation in :def function may fail.
Solution: Do not terminate the expression. (closes #10377)
diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim
index 52cbeae..202bb58 100644
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -2143,6 +2143,19 @@
v9.CheckDefAndScriptFailure(['var x = "abc'], 'E114:', 1)
v9.CheckDefAndScriptFailure(["var x = 'abc"], 'E115:', 1)
v9.CheckDefFailure(["if 0", "echo 'xx", "endif"], 'E115', 2)
+
+ # interpolated string
+ var val = 'val'
+ var vv = $"some {val}"
+ assert_equal('some val', vv)
+ vv = $'other {val}'
+ assert_equal('other val', vv)
+
+ var x = 'x'
+ var vl = 'foo xxx bar xxx baz'
+ ->split($'x{x}x')
+ ->map((_, v: string) => v =~ 'bar')
+ assert_equal([false, true, false], vl)
enddef
def Test_expr8_vimvar()