diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index d5ce5f0..fc22bcd 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -400,10 +400,10 @@
 func Test_pathshorten()
   call assert_equal('', pathshorten(''))
   call assert_equal('foo', pathshorten('foo'))
-  call assert_equal('/foo', pathshorten('/foo'))
+  call assert_equal('/foo', '/foo'->pathshorten())
   call assert_equal('f/', pathshorten('foo/'))
   call assert_equal('f/bar', pathshorten('foo/bar'))
-  call assert_equal('f/b/foobar', pathshorten('foo/bar/foobar'))
+  call assert_equal('f/b/foobar', 'foo/bar/foobar'->pathshorten())
   call assert_equal('/f/b/foobar', pathshorten('/foo/bar/foobar'))
   call assert_equal('.f/bar', pathshorten('.foo/bar'))
   call assert_equal('~f/bar', pathshorten('~foo/bar'))
@@ -847,21 +847,21 @@
   call assert_equal(0, nextnonblank(-1))
   call assert_equal(0, nextnonblank(0))
   call assert_equal(1, nextnonblank(1))
-  call assert_equal(4, nextnonblank(2))
+  call assert_equal(4, 2->nextnonblank())
   call assert_equal(4, nextnonblank(3))
   call assert_equal(4, nextnonblank(4))
   call assert_equal(6, nextnonblank(5))
   call assert_equal(6, nextnonblank(6))
   call assert_equal(7, nextnonblank(7))
-  call assert_equal(0, nextnonblank(8))
+  call assert_equal(0, 8->nextnonblank())
 
   call assert_equal(0, prevnonblank(-1))
   call assert_equal(0, prevnonblank(0))
-  call assert_equal(1, prevnonblank(1))
+  call assert_equal(1, 1->prevnonblank())
   call assert_equal(1, prevnonblank(2))
   call assert_equal(1, prevnonblank(3))
   call assert_equal(4, prevnonblank(4))
-  call assert_equal(4, prevnonblank(5))
+  call assert_equal(4, 5->prevnonblank())
   call assert_equal(6, prevnonblank(6))
   call assert_equal(7, prevnonblank(7))
   call assert_equal(0, prevnonblank(8))
@@ -1220,7 +1220,7 @@
   call assert_equal("a", trim("a", ""))
   call assert_equal("", trim("", "a"))
 
-  let chars = join(map(range(1, 0x20) + [0xa0], {n -> nr2char(n)}), '')
+  let chars = join(map(range(1, 0x20) + [0xa0], {n -> n->nr2char()}), '')
   call assert_equal("x", trim(chars . "x" . chars))
 endfunc
 
diff --git a/src/testdir/test_perl.vim b/src/testdir/test_perl.vim
index 8f23f2c..b4df0ba 100644
--- a/src/testdir/test_perl.vim
+++ b/src/testdir/test_perl.vim
@@ -30,7 +30,7 @@
 
 funct Test_VIM_Blob()
   call assert_equal('0z',         perleval('VIM::Blob("")'))
-  call assert_equal('0z31326162', perleval('VIM::Blob("12ab")'))
+  call assert_equal('0z31326162', 'VIM::Blob("12ab")'->perleval())
   call assert_equal('0z00010203', perleval('VIM::Blob("\x00\x01\x02\x03")'))
   call assert_equal('0z8081FEFF', perleval('VIM::Blob("\x80\x81\xfe\xff")'))
 endfunc
diff --git a/src/testdir/test_prompt_buffer.vim b/src/testdir/test_prompt_buffer.vim
index 028f337..199c1c2 100644
--- a/src/testdir/test_prompt_buffer.vim
+++ b/src/testdir/test_prompt_buffer.vim
@@ -48,6 +48,7 @@
 	\ 'new',
 	\ 'set buftype=prompt',
 	\ 'call prompt_setcallback(bufnr(""), function("TextEntered"))',
+	\ 'eval bufnr("")->prompt_setprompt("cmd: ")',
 	\ 'startinsert',
 	\ ], a:name)
 endfunc
@@ -60,10 +61,10 @@
   call WriteScript(scriptName)
 
   let buf = RunVimInTerminal('-S ' . scriptName, {})
-  call WaitForAssert({-> assert_equal('%', term_getline(buf, 1))})
+  call WaitForAssert({-> assert_equal('cmd:', term_getline(buf, 1))})
 
   call term_sendkeys(buf, "hello\<CR>")
-  call WaitForAssert({-> assert_equal('% hello', term_getline(buf, 1))})
+  call WaitForAssert({-> assert_equal('cmd: hello', term_getline(buf, 1))})
   call WaitForAssert({-> assert_equal('Command: "hello"', term_getline(buf, 2))})
   call WaitForAssert({-> assert_equal('Result: "hello"', term_getline(buf, 3))})
 
@@ -82,19 +83,19 @@
   call WriteScript(scriptName)
 
   let buf = RunVimInTerminal('-S ' . scriptName, {})
-  call WaitForAssert({-> assert_equal('%', term_getline(buf, 1))})
+  call WaitForAssert({-> assert_equal('cmd:', term_getline(buf, 1))})
 
   let bs = "\<BS>"
   call term_sendkeys(buf, "hello" . bs . bs)
-  call WaitForAssert({-> assert_equal('% hel', term_getline(buf, 1))})
+  call WaitForAssert({-> assert_equal('cmd: hel', term_getline(buf, 1))})
 
   let left = "\<Left>"
   call term_sendkeys(buf, left . left . left . bs . '-')
-  call WaitForAssert({-> assert_equal('% -hel', term_getline(buf, 1))})
+  call WaitForAssert({-> assert_equal('cmd: -hel', term_getline(buf, 1))})
 
   let end = "\<End>"
   call term_sendkeys(buf, end . "x")
-  call WaitForAssert({-> assert_equal('% -helx', term_getline(buf, 1))})
+  call WaitForAssert({-> assert_equal('cmd: -helx', term_getline(buf, 1))})
 
   call term_sendkeys(buf, "\<C-U>exit\<CR>")
   call WaitForAssert({-> assert_equal('other buffer', term_getline(buf, 1))})
@@ -113,8 +114,8 @@
 
   new
   set buftype=prompt
-  call prompt_setcallback(bufnr(''), function('MyPromptCallback', [{}]))
-  call prompt_setinterrupt(bufnr(''), function('MyPromptInterrupt', [{}]))
+  eval bufnr('')->prompt_setcallback(function('MyPromptCallback', [{}]))
+  eval bufnr('')->prompt_setinterrupt(function('MyPromptInterrupt', [{}]))
   call test_garbagecollect_now()
   " Must not crash
   call feedkeys("\<CR>\<C-C>", 'xt')
diff --git a/src/testdir/test_python2.vim b/src/testdir/test_python2.vim
index 61cf959..de5b0c9 100644
--- a/src/testdir/test_python2.vim
+++ b/src/testdir/test_python2.vim
@@ -54,7 +54,7 @@
 
   try
     py f = vim.Function('\x80\xfdR' + vim.eval('s:foo()'))
-    call assert_equal(name, pyeval('f.name'))
+    call assert_equal(name, 'f.name'->pyeval())
   catch
     call assert_false(v:exception)
   endtry
diff --git a/src/testdir/test_python3.vim b/src/testdir/test_python3.vim
index 7f48619..d66e54f 100644
--- a/src/testdir/test_python3.vim
+++ b/src/testdir/test_python3.vim
@@ -54,7 +54,7 @@
 
   try
     py3 f = vim.Function(b'\x80\xfdR' + vim.eval('s:foo()').encode())
-    call assert_equal(name, py3eval('f.name'))
+    call assert_equal(name, 'f.name'->py3eval())
   catch
     call assert_false(v:exception)
   endtry
diff --git a/src/testdir/test_pyx2.vim b/src/testdir/test_pyx2.vim
index 40e93c2..20199a4 100644
--- a/src/testdir/test_pyx2.vim
+++ b/src/testdir/test_pyx2.vim
@@ -34,7 +34,7 @@
 
 func Test_pyxeval()
   pyx import sys
-  call assert_match(s:py2pattern, split(pyxeval('sys.version'))[0])
+  call assert_match(s:py2pattern, split('sys.version'->pyxeval())[0])
 endfunc
 
 
