diff --git a/src/testdir/test_vim9_assign.vim b/src/testdir/test_vim9_assign.vim
index 8dadb2c..c035558 100644
--- a/src/testdir/test_vim9_assign.vim
+++ b/src/testdir/test_vim9_assign.vim
@@ -1351,7 +1351,7 @@
       var ll: list<number>
       ll = [1, 2, 3]->map('"one"')
   END
-  CheckDefExecFailure(lines, 'E1012: Type mismatch; expected list<number> but got list<string>')
+  CheckDefExecFailure(lines, 'E1012: Type mismatch; expected number but got string')
 enddef
 
 def Test_cannot_use_let()
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index 180070e..61d129e 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -331,27 +331,6 @@
   return filter(items, (_, val) => get({[val]: 1}, 'x'))
 enddef
 
-def Test_map_function_arg()
-  var lines =<< trim END
-      def MapOne(i: number, v: string): string
-        return i .. ':' .. v
-      enddef
-      var l = ['a', 'b', 'c']
-      map(l, MapOne)
-      assert_equal(['0:a', '1:b', '2:c'], l)
-  END
-  CheckDefAndScriptSuccess(lines)
-enddef
-
-def Test_map_item_type()
-  var lines =<< trim END
-      var l = ['a', 'b', 'c']
-      map(l, (k, v) => k .. '/' .. v )
-      assert_equal(['0/a', '1/b', '2/c'], l)
-  END
-  CheckDefAndScriptSuccess(lines)
-enddef
-
 def Test_filereadable()
   assert_false(filereadable(""))
   assert_false(filereadable(test_null_string()))
@@ -584,6 +563,45 @@
           ->str2nr()
 enddef
 
+def Test_map_function_arg()
+  var lines =<< trim END
+      def MapOne(i: number, v: string): string
+        return i .. ':' .. v
+      enddef
+      var l = ['a', 'b', 'c']
+      map(l, MapOne)
+      assert_equal(['0:a', '1:b', '2:c'], l)
+  END
+  CheckDefAndScriptSuccess(lines)
+enddef
+
+def Test_map_item_type()
+  var lines =<< trim END
+      var l = ['a', 'b', 'c']
+      map(l, (k, v) => k .. '/' .. v )
+      assert_equal(['0/a', '1/b', '2/c'], l)
+  END
+  CheckDefAndScriptSuccess(lines)
+
+  lines =<< trim END
+    var l: list<number> = [0]
+    echo map(l, (_, v) => [])
+  END
+  CheckDefExecAndScriptFailure(lines, 'E1012: Type mismatch; expected number but got list<unknown>', 2)
+
+  lines =<< trim END
+    var l: list<number> = range(2)
+    echo map(l, (_, v) => [])
+  END
+  CheckDefExecAndScriptFailure(lines, 'E1012: Type mismatch; expected number but got list<unknown>', 2)
+
+  lines =<< trim END
+    var d: dict<number> = {key: 0}
+    echo map(d, (_, v) => [])
+  END
+  CheckDefExecAndScriptFailure(lines, 'E1012: Type mismatch; expected number but got list<unknown>', 2)
+enddef
+
 def Test_maparg()
   var lnum = str2nr(expand('<sflnum>'))
   map foo bar
