changeset 22421:2765ae0ce02e v8.2.1759

patch 8.2.1759: Vim9: Some tests are still using :let Commit: https://github.com/vim/vim/commit/37ce6d3a6ab7c7864de6788feb67377e8bbffa63 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Sep 27 17:57:43 2020 +0200 patch 8.2.1759: Vim9: Some tests are still using :let Problem: Vim9: Some tests are still using :let. Solution: Change more declarations to use :var.
author Bram Moolenaar <Bram@vim.org>
date Sun, 27 Sep 2020 18:00:04 +0200
parents 6fd8be66696c
children 8e8febe4ddfc
files src/testdir/test_vim9_expr.vim src/version.c
diffstat 2 files changed, 365 insertions(+), 361 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_vim9_expr.vim
+++ b/src/testdir/test_vim9_expr.vim
@@ -3,6 +3,8 @@
 source check.vim
 source vim9.vim
 
+" TODO: remove later
+let v:disallow_let = 1
 
 let g:cond = v:false
 def FuncOne(arg: number): string
@@ -28,8 +30,8 @@ def Test_expr1()
   assert_equal('one', 0z1234 ? 'one' : 'two')
   assert_equal('one', [0] ? 'one' : 'two')
   assert_equal('one', #{x: 0} ? 'one' : 'two')
-  let var = 1
-  assert_equal('one', var ? 'one' : 'two')
+  var name = 1
+  assert_equal('one', name ? 'one' : 'two')
 
   assert_equal('two', false ? 'one' : 'two')
   assert_equal('two', 0 ? 'one' : 'two')
@@ -40,33 +42,33 @@ def Test_expr1()
   assert_equal('two', 0z ? 'one' : 'two')
   assert_equal('two', [] ? 'one' : 'two')
   assert_equal('two', {} ? 'one' : 'two')
-  var = 0
-  assert_equal('two', var ? 'one' : 'two')
+  name = 0
+  assert_equal('two', name ? 'one' : 'two')
 
   # with constant condition expression is not evaluated 
   assert_equal('one', 1 ? 'one' : xxx)
 
-  let Some: func = function('len')
-  let Other: func = function('winnr')
-  let Res: func = g:atrue ? Some : Other
+  var Some: func = function('len')
+  var Other: func = function('winnr')
+  var Res: func = g:atrue ? Some : Other
   assert_equal(function('len'), Res)
 
-  let RetOne: func(string): number = function('len')
-  let RetTwo: func(string): number = function('winnr')
-  let RetThat: func = g:atrue ? RetOne : RetTwo
+  var RetOne: func(string): number = function('len')
+  var RetTwo: func(string): number = function('winnr')
+  var RetThat: func = g:atrue ? RetOne : RetTwo
   assert_equal(function('len'), RetThat)
 
-  let X = FuncOne
-  let Y = FuncTwo
-  let Z = g:cond ? FuncOne : FuncTwo
+  var X = FuncOne
+  var Y = FuncTwo
+  var Z = g:cond ? FuncOne : FuncTwo
   assert_equal(123, Z(3))
 enddef
 
 def Test_expr1_vimscript()
   # check line continuation
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let var = 1
+      var var = 1
       		? 'yes'
 		: 'no'
       assert_equal('yes', var)
@@ -75,7 +77,7 @@ def Test_expr1_vimscript()
 
   lines =<< trim END
       vim9script
-      let var = v:false
+      var var = v:false
       		? 'yes'
 		: 'no'
       assert_equal('no', var)
@@ -84,7 +86,7 @@ def Test_expr1_vimscript()
 
   lines =<< trim END
       vim9script
-      let var = v:false ?
+      var var = v:false ?
       		'yes' :
 		'no'
       assert_equal('no', var)
@@ -94,27 +96,27 @@ def Test_expr1_vimscript()
   # check white space
   lines =<< trim END
       vim9script
-      let var = v:true?1:2
+      var var = v:true?1:2
   END
   CheckScriptFailure(lines, 'E1004:', 2)
   lines =<< trim END
       vim9script
-      let var = v:true? 1 : 2
+      var var = v:true? 1 : 2
   END
   CheckScriptFailure(lines, 'E1004:', 2)
   lines =<< trim END
       vim9script
-      let var = v:true ?1 : 2
+      var var = v:true ?1 : 2
   END
   CheckScriptFailure(lines, 'E1004:', 2)
   lines =<< trim END
       vim9script
-      let var = v:true ? 1: 2
+      var var = v:true ? 1: 2
   END
   CheckScriptFailure(lines, 'E1004:', 2)
   lines =<< trim END
       vim9script
-      let var = v:true ? 1 :2
+      var var = v:true ? 1 :2
   END
   CheckScriptFailure(lines, 'E1004:', 2)
 
@@ -141,23 +143,23 @@ def Test_expr1_vimscript()
 enddef
 
 func Test_expr1_fails()
-  call CheckDefFailure(["let x = 1 ? 'one'"], "Missing ':' after '?'", 1)
+  call CheckDefFailure(["var x = 1 ? 'one'"], "Missing ':' after '?'", 1)
 
   let msg = "White space required before and after '?'"
-  call CheckDefFailure(["let x = 1? 'one' : 'two'"], msg, 1)
-  call CheckDefFailure(["let x = 1 ?'one' : 'two'"], msg, 1)
-  call CheckDefFailure(["let x = 1?'one' : 'two'"], msg, 1)
+  call CheckDefFailure(["var x = 1? 'one' : 'two'"], msg, 1)
+  call CheckDefFailure(["var x = 1 ?'one' : 'two'"], msg, 1)
+  call CheckDefFailure(["var x = 1?'one' : 'two'"], msg, 1)
 
   let msg = "White space required before and after ':'"
-  call CheckDefFailure(["let x = 1 ? 'one': 'two'"], msg, 1)
-  call CheckDefFailure(["let x = 1 ? 'one' :'two'"], msg, 1)
-  call CheckDefFailure(["let x = 1 ? 'one':'two'"], msg, 1)
+  call CheckDefFailure(["var x = 1 ? 'one': 'two'"], msg, 1)
+  call CheckDefFailure(["var x = 1 ? 'one' :'two'"], msg, 1)
+  call CheckDefFailure(["var x = 1 ? 'one':'two'"], msg, 1)
 
   " missing argument detected even when common type is used
   call CheckDefFailure([
-	\ 'let X = FuncOne',
-	\ 'let Y = FuncTwo',
-	\ 'let Z = g:cond ? FuncOne : FuncTwo',
+	\ 'var X = FuncOne',
+	\ 'var Y = FuncTwo',
+	\ 'var Z = g:cond ? FuncOne : FuncTwo',
 	\ 'Z()'], 'E119:', 4)
 endfunc
 
@@ -199,9 +201,9 @@ enddef
 
 def Test_expr2_vimscript()
   # check line continuation
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let var = 0
+      var var = 0
       		|| 1
       assert_equal(1, var)
   END
@@ -209,7 +211,7 @@ def Test_expr2_vimscript()
 
   lines =<< trim END
       vim9script
-      let var = v:false
+      var var = v:false
       		|| v:true
       		|| v:false
       assert_equal(v:true, var)
@@ -218,7 +220,7 @@ def Test_expr2_vimscript()
 
   lines =<< trim END
       vim9script
-      let var = v:false ||
+      var var = v:false ||
       		v:true ||
 		v:false
       assert_equal(v:true, var)
@@ -228,17 +230,17 @@ def Test_expr2_vimscript()
   # check white space
   lines =<< trim END
       vim9script
-      let var = v:true||v:true
+      var var = v:true||v:true
   END
   CheckScriptFailure(lines, 'E1004:', 2)
   lines =<< trim END
       vim9script
-      let var = v:true ||v:true
+      var var = v:true ||v:true
   END
   CheckScriptFailure(lines, 'E1004:', 2)
   lines =<< trim END
       vim9script
-      let var = v:true|| v:true
+      var var = v:true|| v:true
   END
   CheckScriptFailure(lines, 'E1004:', 2)
 
@@ -277,11 +279,11 @@ enddef
 
 func Test_expr2_fails()
   let msg = "White space required before and after '||'"
-  call CheckDefFailure(["let x = 1||2"], msg, 1)
-  call CheckDefFailure(["let x = 1 ||2"], msg, 1)
-  call CheckDefFailure(["let x = 1|| 2"], msg, 1)
+  call CheckDefFailure(["var x = 1||2"], msg, 1)
+  call CheckDefFailure(["var x = 1 ||2"], msg, 1)
+  call CheckDefFailure(["var x = 1|| 2"], msg, 1)
 
-  call CheckDefFailure(["let x = 1 || xxx"], 'E1001:', 1)
+  call CheckDefFailure(["var x = 1 || xxx"], 'E1001:', 1)
 endfunc
 
 " test &&
@@ -320,9 +322,9 @@ enddef
 
 def Test_expr3_vimscript()
   # check line continuation
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let var = 0
+      var var = 0
       		&& 1
       assert_equal(0, var)
   END
@@ -330,7 +332,7 @@ def Test_expr3_vimscript()
 
   lines =<< trim END
       vim9script
-      let var = v:true
+      var var = v:true
       		&& v:true
       		&& v:true
       assert_equal(v:true, var)
@@ -339,7 +341,7 @@ def Test_expr3_vimscript()
 
   lines =<< trim END
       vim9script
-      let var = v:true &&
+      var var = v:true &&
       		v:true &&
       		v:true
       assert_equal(v:true, var)
@@ -349,17 +351,17 @@ def Test_expr3_vimscript()
   # check white space
   lines =<< trim END
       vim9script
-      let var = v:true&&v:true
+      var var = v:true&&v:true
   END
   CheckScriptFailure(lines, 'E1004:', 2)
   lines =<< trim END
       vim9script
-      let var = v:true &&v:true
+      var var = v:true &&v:true
   END
   CheckScriptFailure(lines, 'E1004:', 2)
   lines =<< trim END
       vim9script
-      let var = v:true&& v:true
+      var var = v:true&& v:true
   END
   CheckScriptFailure(lines, 'E1004:', 2)
 
@@ -402,9 +404,9 @@ enddef
 
 func Test_expr3_fails()
   let msg = "White space required before and after '&&'"
-  call CheckDefFailure(["let x = 1&&2"], msg, 1)
-  call CheckDefFailure(["let x = 1 &&2"], msg, 1)
-  call CheckDefFailure(["let x = 1&& 2"], msg, 1)
+  call CheckDefFailure(["var x = 1&&2"], msg, 1)
+  call CheckDefFailure(["var x = 1 &&2"], msg, 1)
+  call CheckDefFailure(["var x = 1&& 2"], msg, 1)
 endfunc
 
 " global variables to use for tests with the "any" type
@@ -425,8 +427,8 @@ let adict = #{aaa: 2, bbb: 8}
 
 " test == comperator
 def Test_expr4_equal()
-  let trueVar = true
-  let falseVar = false
+  var trueVar = true
+  var falseVar = false
   assert_equal(true, true == true)
   assert_equal(false, true ==
 			false)
@@ -441,8 +443,8 @@ def Test_expr4_equal()
   assert_equal(true, g:anone == v:none)
   assert_equal(false, v:none == g:anull)
 
-  let nr0 = 0
-  let nr61 = 61
+  var nr0 = 0
+  var nr61 = 61
   assert_equal(false, 2 == 0)
   assert_equal(false, 2 == nr0)
   assert_equal(true, 61 == 61)
@@ -451,7 +453,7 @@ def Test_expr4_equal()
   assert_equal(false, 61 == g:anint)
 
   if has('float')
-    let ff = 0.3
+    var ff = 0.3
     assert_equal(true, ff == 0.3)
     assert_equal(false, 0.4 == ff)
     assert_equal(true, 0.1 == g:afloat)
@@ -480,10 +482,10 @@ def Test_expr4_equal()
   assert_equal(false, 'abc' ==# 'ABC')
   set noignorecase
 
-  CheckDefFailure(["let x = 'a' == xxx"], 'E1001:', 1)
-  CheckDefExecFailure(['let items: any', 'eval 1', 'eval 2', 'if items == []', 'endif'], 'E691:', 4)
+  CheckDefFailure(["var x = 'a' == xxx"], 'E1001:', 1)
+  CheckDefExecFailure(['var items: any', 'eval 1', 'eval 2', 'if items == []', 'endif'], 'E691:', 4)
 
-  let bb = 0z3f
+  var bb = 0z3f
   assert_equal(true, 0z3f == bb)
   assert_equal(false, bb == 0z4f)
   assert_equal(true, g:ablob == 0z01ab)
@@ -510,8 +512,8 @@ def Test_expr4_equal()
   assert_equal(false, function('g:Test_expr4_equal', [123]) == function('g:Test_expr4_is', [123]))
   assert_equal(false, function('g:Test_expr4_equal', [123]) == function('g:Test_expr4_equal', [999]))
 
-  let OneFunc: func
-  let TwoFunc: func
+  var OneFunc: func
+  var TwoFunc: func
   OneFunc = function('len')
   TwoFunc = function('len')
   assert_equal(true, OneFunc('abc') == TwoFunc('123'))
@@ -519,8 +521,8 @@ enddef
 
 " test != comperator
 def Test_expr4_notequal()
-  let trueVar = true
-  let falseVar = false
+  var trueVar = true
+  var falseVar = false
   assert_equal(false, true != true)
   assert_equal(true, true !=
 			false)
@@ -535,8 +537,8 @@ def Test_expr4_notequal()
   assert_equal(false, g:anone != v:none)
   assert_equal(true, v:none != g:anull)
 
-  let nr55 = 55
-  let nr0 = 55
+  var nr55 = 55
+  var nr0 = 55
   assert_equal(true, 2 != 0)
   assert_equal(true, 2 != nr0)
   assert_equal(false, 55 != 55)
@@ -545,7 +547,7 @@ def Test_expr4_notequal()
   assert_equal(true, 61 != g:anint)
 
   if has('float')
-    let ff = 0.3
+    var ff = 0.3
     assert_equal(false, 0.3 != ff)
     assert_equal(true, 0.4 != ff)
     assert_equal(false, 0.1 != g:afloat)
@@ -569,7 +571,7 @@ def Test_expr4_notequal()
   assert_equal(true, 'abc' != 'ABC')
   set noignorecase
 
-  let bb = 0z3f
+  var bb = 0z3f
   assert_equal(false, 0z3f != bb)
   assert_equal(true, bb != 0z4f)
   assert_equal(false, g:ablob != 0z01ab)
@@ -604,7 +606,7 @@ def Test_expr4_greater()
 		1)
   assert_false(2 > 2)
   assert_false(2 > 3)
-  let nr2 = 2
+  var nr2 = 2
   assert_true(nr2 > 0)
   assert_true(nr2 >
 		1)
@@ -612,7 +614,7 @@ def Test_expr4_greater()
   assert_false(nr2
   		    > 3)
   if has('float')
-    let ff = 2.0
+    var ff = 2.0
     assert_true(ff > 0.0)
     assert_true(ff > 1.0)
     assert_false(ff > 2.0)
@@ -626,12 +628,12 @@ def Test_expr4_greaterequal()
   assert_true(2 >=
 			2)
   assert_false(2 >= 3)
-  let nr2 = 2
+  var nr2 = 2
   assert_true(nr2 >= 0)
   assert_true(nr2 >= 2)
   assert_false(nr2 >= 3)
   if has('float')
-    let ff = 2.0
+    var ff = 2.0
     assert_true(ff >= 0.0)
     assert_true(ff >= 2.0)
     assert_false(ff >= 3.0)
@@ -645,12 +647,12 @@ def Test_expr4_smaller()
 			2)
   assert_true(2
   		< 3)
-  let nr2 = 2
+  var nr2 = 2
   assert_false(nr2 < 0)
   assert_false(nr2 < 2)
   assert_true(nr2 < 3)
   if has('float')
-    let ff = 2.0
+    var ff = 2.0
     assert_false(ff < 0.0)
     assert_false(ff < 2.0)
     assert_true(ff < 3.0)
@@ -665,13 +667,13 @@ def Test_expr4_smallerequal()
   assert_true(2
   		<= 2)
   assert_true(2 <= 3)
-  let nr2 = 2
+  var nr2 = 2
   assert_false(nr2 <= 0)
   assert_false(nr2 <= 1)
   assert_true(nr2 <= 2)
   assert_true(nr2 <= 3)
   if has('float')
-    let ff = 2.0
+    var ff = 2.0
     assert_false(ff <= 0.0)
     assert_false(ff <= 1.0)
     assert_true(ff <= 2.0)
@@ -699,44 +701,44 @@ enddef
 
 " test is comperator
 def Test_expr4_is()
-  let mylist = [2]
+  var mylist = [2]
   assert_false(mylist is [2])
-  let other = mylist
+  var other = mylist
   assert_true(mylist is
 		other)
 
-  let myblob = 0z1234
+  var myblob = 0z1234
   assert_false(myblob
   			is 0z1234)
-  let otherblob = myblob
+  var otherblob = myblob
   assert_true(myblob is otherblob)
 enddef
 
 " test isnot comperator
 def Test_expr4_isnot()
-  let mylist = [2]
+  var mylist = [2]
   assert_true('2' isnot '0')
   assert_true(mylist isnot [2])
-  let other = mylist
+  var other = mylist
   assert_false(mylist isnot
 			other)
 
-  let myblob = 0z1234
+  var myblob = 0z1234
   assert_true(myblob
   		isnot 0z1234)
-  let otherblob = myblob
+  var otherblob = myblob
   assert_false(myblob isnot otherblob)
 enddef
 
 def RetVoid()
-  let x = 1
+  var x = 1
 enddef
 
 def Test_expr4_vim9script()
   # check line continuation
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let var = 0
+      var var = 0
       		< 1
       assert_equal(true, var)
   END
@@ -744,7 +746,7 @@ def Test_expr4_vim9script()
 
   lines =<< trim END
       vim9script
-      let var = 123
+      var var = 123
       		!= 123
       assert_equal(false, var)
   END
@@ -752,7 +754,7 @@ def Test_expr4_vim9script()
 
   lines =<< trim END
       vim9script
-      let var = 123 ==
+      var var = 123 ==
       			123
       assert_equal(true, var)
   END
@@ -760,19 +762,19 @@ def Test_expr4_vim9script()
 
   lines =<< trim END
       vim9script
-      let list = [1, 2, 3]
-      let var = list
+      var list = [1, 2, 3]
+      var name = list
       		is list
-      assert_equal(true, var)
+      assert_equal(true, name)
   END
   CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
-      let myblob = 0z1234
-      let var = myblob
+      var myblob = 0z1234
+      var name = myblob
       		isnot 0z11
-      assert_equal(true, var)
+      assert_equal(true, name)
   END
   CheckScriptSuccess(lines)
 
@@ -854,7 +856,7 @@ def Test_expr4_vim9script()
 
   lines =<< trim END
     vim9script
-    let line = 'abc'
+    var line = 'abc'
     echo line[1] =~ '\w'
   END
   CheckScriptSuccess(lines)
@@ -862,71 +864,71 @@ enddef
 
 func Test_expr4_fails()
   let msg = "White space required before and after '>'"
-  call CheckDefFailure(["let x = 1>2"], msg, 1)
-  call CheckDefFailure(["let x = 1 >2"], msg, 1)
-  call CheckDefFailure(["let x = 1> 2"], msg, 1)
+  call CheckDefFailure(["var x = 1>2"], msg, 1)
+  call CheckDefFailure(["var x = 1 >2"], msg, 1)
+  call CheckDefFailure(["var x = 1> 2"], msg, 1)
 
   let msg = "White space required before and after '=='"
-  call CheckDefFailure(["let x = 1==2"], msg, 1)
-  call CheckDefFailure(["let x = 1 ==2"], msg, 1)
-  call CheckDefFailure(["let x = 1== 2"], msg, 1)
+  call CheckDefFailure(["var x = 1==2"], msg, 1)
+  call CheckDefFailure(["var x = 1 ==2"], msg, 1)
+  call CheckDefFailure(["var x = 1== 2"], msg, 1)
 
   let msg = "White space required before and after 'is'"
-  call CheckDefFailure(["let x = '1'is'2'"], msg, 1)
-  call CheckDefFailure(["let x = '1' is'2'"], msg, 1)
-  call CheckDefFailure(["let x = '1'is '2'"], msg, 1)
+  call CheckDefFailure(["var x = '1'is'2'"], msg, 1)
+  call CheckDefFailure(["var x = '1' is'2'"], msg, 1)
+  call CheckDefFailure(["var x = '1'is '2'"], msg, 1)
 
   let msg = "White space required before and after 'isnot'"
-  call CheckDefFailure(["let x = '1'isnot'2'"], msg, 1)
-  call CheckDefFailure(["let x = '1' isnot'2'"], msg, 1)
-  call CheckDefFailure(["let x = '1'isnot '2'"], msg, 1)
+  call CheckDefFailure(["var x = '1'isnot'2'"], msg, 1)
+  call CheckDefFailure(["var x = '1' isnot'2'"], msg, 1)
+  call CheckDefFailure(["var x = '1'isnot '2'"], msg, 1)
 
-  call CheckDefFailure(["let x = 1 is# 2"], 'E15:', 1)
-  call CheckDefFailure(["let x = 1 is? 2"], 'E15:', 1)
-  call CheckDefFailure(["let x = 1 isnot# 2"], 'E15:', 1)
-  call CheckDefFailure(["let x = 1 isnot? 2"], 'E15:', 1)
+  call CheckDefFailure(["var x = 1 is# 2"], 'E15:', 1)
+  call CheckDefFailure(["var x = 1 is? 2"], 'E15:', 1)
+  call CheckDefFailure(["var x = 1 isnot# 2"], 'E15:', 1)
+  call CheckDefFailure(["var x = 1 isnot? 2"], 'E15:', 1)
 
-  call CheckDefFailure(["let x = 1 == '2'"], 'Cannot compare number with string', 1)
-  call CheckDefFailure(["let x = '1' == 2"], 'Cannot compare string with number', 1)
-  call CheckDefFailure(["let x = 1 == RetVoid()"], 'Cannot compare number with void', 1)
-  call CheckDefFailure(["let x = RetVoid() == 1"], 'Cannot compare void with number', 1)
+  call CheckDefFailure(["var x = 1 == '2'"], 'Cannot compare number with string', 1)
+  call CheckDefFailure(["var x = '1' == 2"], 'Cannot compare string with number', 1)
+  call CheckDefFailure(["var x = 1 == RetVoid()"], 'Cannot compare number with void', 1)
+  call CheckDefFailure(["var x = RetVoid() == 1"], 'Cannot compare void with number', 1)
 
-  call CheckDefFailure(["let x = true > false"], 'Cannot compare bool with bool', 1)
-  call CheckDefFailure(["let x = true >= false"], 'Cannot compare bool with bool', 1)
-  call CheckDefFailure(["let x = true < false"], 'Cannot compare bool with bool', 1)
-  call CheckDefFailure(["let x = true <= false"], 'Cannot compare bool with bool', 1)
-  call CheckDefFailure(["let x = true =~ false"], 'Cannot compare bool with bool', 1)
-  call CheckDefFailure(["let x = true !~ false"], 'Cannot compare bool with bool', 1)
-  call CheckDefFailure(["let x = true is false"], 'Cannot use "is" with bool', 1)
-  call CheckDefFailure(["let x = true isnot false"], 'Cannot use "isnot" with bool', 1)
+  call CheckDefFailure(["var x = true > false"], 'Cannot compare bool with bool', 1)
+  call CheckDefFailure(["var x = true >= false"], 'Cannot compare bool with bool', 1)
+  call CheckDefFailure(["var x = true < false"], 'Cannot compare bool with bool', 1)
+  call CheckDefFailure(["var x = true <= false"], 'Cannot compare bool with bool', 1)
+  call CheckDefFailure(["var x = true =~ false"], 'Cannot compare bool with bool', 1)
+  call CheckDefFailure(["var x = true !~ false"], 'Cannot compare bool with bool', 1)
+  call CheckDefFailure(["var x = true is false"], 'Cannot use "is" with bool', 1)
+  call CheckDefFailure(["var x = true isnot false"], 'Cannot use "isnot" with bool', 1)
 
-  call CheckDefFailure(["let x = v:none is v:null"], 'Cannot use "is" with special', 1)
-  call CheckDefFailure(["let x = v:none isnot v:null"], 'Cannot use "isnot" with special', 1)
-  call CheckDefFailure(["let x = 123 is 123"], 'Cannot use "is" with number', 1)
-  call CheckDefFailure(["let x = 123 isnot 123"], 'Cannot use "isnot" with number', 1)
+  call CheckDefFailure(["var x = v:none is v:null"], 'Cannot use "is" with special', 1)
+  call CheckDefFailure(["var x = v:none isnot v:null"], 'Cannot use "isnot" with special', 1)
+  call CheckDefFailure(["var x = 123 is 123"], 'Cannot use "is" with number', 1)
+  call CheckDefFailure(["var x = 123 isnot 123"], 'Cannot use "isnot" with number', 1)
   if has('float')
-    call CheckDefFailure(["let x = 1.3 is 1.3"], 'Cannot use "is" with float', 1)
-    call CheckDefFailure(["let x = 1.3 isnot 1.3"], 'Cannot use "isnot" with float', 1)
+    call CheckDefFailure(["var x = 1.3 is 1.3"], 'Cannot use "is" with float', 1)
+    call CheckDefFailure(["var x = 1.3 isnot 1.3"], 'Cannot use "isnot" with float', 1)
   endif
 
-  call CheckDefFailure(["let x = 0za1 > 0z34"], 'Cannot compare blob with blob', 1)
-  call CheckDefFailure(["let x = 0za1 >= 0z34"], 'Cannot compare blob with blob', 1)
-  call CheckDefFailure(["let x = 0za1 < 0z34"], 'Cannot compare blob with blob', 1)
-  call CheckDefFailure(["let x = 0za1 <= 0z34"], 'Cannot compare blob with blob', 1)
-  call CheckDefFailure(["let x = 0za1 =~ 0z34"], 'Cannot compare blob with blob', 1)
-  call CheckDefFailure(["let x = 0za1 !~ 0z34"], 'Cannot compare blob with blob', 1)
+  call CheckDefFailure(["var x = 0za1 > 0z34"], 'Cannot compare blob with blob', 1)
+  call CheckDefFailure(["var x = 0za1 >= 0z34"], 'Cannot compare blob with blob', 1)
+  call CheckDefFailure(["var x = 0za1 < 0z34"], 'Cannot compare blob with blob', 1)
+  call CheckDefFailure(["var x = 0za1 <= 0z34"], 'Cannot compare blob with blob', 1)
+  call CheckDefFailure(["var x = 0za1 =~ 0z34"], 'Cannot compare blob with blob', 1)
+  call CheckDefFailure(["var x = 0za1 !~ 0z34"], 'Cannot compare blob with blob', 1)
 
-  call CheckDefFailure(["let x = [13] > [88]"], 'Cannot compare list with list', 1)
-  call CheckDefFailure(["let x = [13] >= [88]"], 'Cannot compare list with list', 1)
-  call CheckDefFailure(["let x = [13] < [88]"], 'Cannot compare list with list', 1)
-  call CheckDefFailure(["let x = [13] <= [88]"], 'Cannot compare list with list', 1)
-  call CheckDefFailure(["let x = [13] =~ [88]"], 'Cannot compare list with list', 1)
-  call CheckDefFailure(["let x = [13] !~ [88]"], 'Cannot compare list with list', 1)
+  call CheckDefFailure(["var x = [13] > [88]"], 'Cannot compare list with list', 1)
+  call CheckDefFailure(["var x = [13] >= [88]"], 'Cannot compare list with list', 1)
+  call CheckDefFailure(["var x = [13] < [88]"], 'Cannot compare list with list', 1)
+  call CheckDefFailure(["var x = [13] <= [88]"], 'Cannot compare list with list', 1)
+  call CheckDefFailure(["var x = [13] =~ [88]"], 'Cannot compare list with list', 1)
+  call CheckDefFailure(["var x = [13] !~ [88]"], 'Cannot compare list with list', 1)
 
-  call CheckDefFailure(['let j: job', 'let chan: channel', 'let r = j == chan'], 'Cannot compare job with channel', 3)
-  call CheckDefFailure(['let j: job', 'let x: list<any>', 'let r = j == x'], 'Cannot compare job with list', 3)
-  call CheckDefFailure(['let j: job', 'let Xx: func', 'let r = j == Xx'], 'Cannot compare job with func', 3)
-  call CheckDefFailure(['let j: job', 'let Xx: func', 'let r = j == Xx'], 'Cannot compare job with func', 3)
+  call CheckDefFailure(['var j: job', 'var chan: channel', 'var r = j == chan'], 'Cannot compare job with channel', 3)
+  call CheckDefFailure(['var j: job', 'var x: list<any>', 'var r = j == x'], 'Cannot compare job with list', 3)
+  call CheckDefFailure(['var j: job', 'var Xx: func', 'var r = j == Xx'], 'Cannot compare job with func', 3)
+  call CheckDefFailure(['var j: job', 'var Xx: func', 'var r = j == Xx'], 'Cannot compare job with func', 3)
 endfunc
 
 " test addition, subtraction, concatenation
@@ -970,7 +972,7 @@ def Test_expr5()
   assert_equal(0z01ab01ab, g:ablob + g:ablob)
 
   # concatenate non-constant to constant
-  let save_path = &path
+  var save_path = &path
   &path = 'b'
   assert_equal('ab', 'a' .. &path)
   &path = save_path
@@ -984,9 +986,9 @@ enddef
 
 def Test_expr5_vim9script()
   # check line continuation
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let var = 11
+      var var = 11
       		+ 77
 		- 22
       assert_equal(66, var)
@@ -995,7 +997,7 @@ def Test_expr5_vim9script()
 
   lines =<< trim END
       vim9script
-      let var = 11 +
+      var var = 11 +
 		  77 -
 		  22
       assert_equal(66, var)
@@ -1004,7 +1006,7 @@ def Test_expr5_vim9script()
 
   lines =<< trim END
       vim9script
-      let var = 'one'
+      var var = 'one'
       		.. 'two'
       assert_equal('onetwo', var)
   END
@@ -1112,7 +1114,7 @@ def Test_expr5_vim9script_channel()
   if !has('channel')
     MissingFeature 'float'
   else
-    let lines =<< trim END
+    var lines =<< trim END
         vim9script
         echo 'a' .. test_null_job()
     END
@@ -1152,40 +1154,40 @@ enddef
 
 func Test_expr5_fails()
   let msg = "White space required before and after '+'"
-  call CheckDefFailure(["let x = 1+2"], msg, 1)
-  call CheckDefFailure(["let x = 1 +2"], msg, 1)
-  call CheckDefFailure(["let x = 1+ 2"], msg, 1)
+  call CheckDefFailure(["var x = 1+2"], msg, 1)
+  call CheckDefFailure(["var x = 1 +2"], msg, 1)
+  call CheckDefFailure(["var x = 1+ 2"], msg, 1)
 
   let msg = "White space required before and after '-'"
-  call CheckDefFailure(["let x = 1-2"], msg, 1)
-  call CheckDefFailure(["let x = 1 -2"], msg, 1)
-  call CheckDefFailure(["let x = 1- 2"], msg, 1)
+  call CheckDefFailure(["var x = 1-2"], msg, 1)
+  call CheckDefFailure(["var x = 1 -2"], msg, 1)
+  call CheckDefFailure(["var x = 1- 2"], msg, 1)
 
   let msg = "White space required before and after '..'"
-  call CheckDefFailure(["let x = '1'..'2'"], msg, 1)
-  call CheckDefFailure(["let x = '1' ..'2'"], msg, 1)
-  call CheckDefFailure(["let x = '1'.. '2'"], msg, 1)
+  call CheckDefFailure(["var x = '1'..'2'"], msg, 1)
+  call CheckDefFailure(["var x = '1' ..'2'"], msg, 1)
+  call CheckDefFailure(["var x = '1'.. '2'"], msg, 1)
 
-  call CheckDefFailure(["let x = 0z1122 + 33"], 'E1051', 1)
-  call CheckDefFailure(["let x = 0z1122 + [3]"], 'E1051', 1)
-  call CheckDefFailure(["let x = 0z1122 + 'asd'"], 'E1051', 1)
-  call CheckDefFailure(["let x = 33 + 0z1122"], 'E1051', 1)
-  call CheckDefFailure(["let x = [3] + 0z1122"], 'E1051', 1)
-  call CheckDefFailure(["let x = 'asdf' + 0z1122"], 'E1051', 1)
-  call CheckDefFailure(["let x = 6 + xxx"], 'E1001', 1)
+  call CheckDefFailure(["var x = 0z1122 + 33"], 'E1051', 1)
+  call CheckDefFailure(["var x = 0z1122 + [3]"], 'E1051', 1)
+  call CheckDefFailure(["var x = 0z1122 + 'asd'"], 'E1051', 1)
+  call CheckDefFailure(["var x = 33 + 0z1122"], 'E1051', 1)
+  call CheckDefFailure(["var x = [3] + 0z1122"], 'E1051', 1)
+  call CheckDefFailure(["var x = 'asdf' + 0z1122"], 'E1051', 1)
+  call CheckDefFailure(["var x = 6 + xxx"], 'E1001', 1)
 
-  call CheckDefFailure(["let x = 'a' .. [1]"], 'E1105', 1)
-  call CheckDefFailure(["let x = 'a' .. #{a: 1}"], 'E1105', 1)
-  call CheckDefFailure(["let x = 'a' .. test_void()"], 'E1105', 1)
-  call CheckDefFailure(["let x = 'a' .. 0z32"], 'E1105', 1)
-  call CheckDefFailure(["let x = 'a' .. function('len')"], 'E1105', 1)
-  call CheckDefFailure(["let x = 'a' .. function('len', ['a'])"], 'E1105', 1)
+  call CheckDefFailure(["var x = 'a' .. [1]"], 'E1105', 1)
+  call CheckDefFailure(["var x = 'a' .. #{a: 1}"], 'E1105', 1)
+  call CheckDefFailure(["var x = 'a' .. test_void()"], 'E1105', 1)
+  call CheckDefFailure(["var x = 'a' .. 0z32"], 'E1105', 1)
+  call CheckDefFailure(["var x = 'a' .. function('len')"], 'E1105', 1)
+  call CheckDefFailure(["var x = 'a' .. function('len', ['a'])"], 'E1105', 1)
 endfunc
 
 func Test_expr5_fails_channel()
   CheckFeature channel
-  call CheckDefFailure(["let x = 'a' .. test_null_job()"], 'E1105', 1)
-  call CheckDefFailure(["let x = 'a' .. test_null_channel()"], 'E1105', 1)
+  call CheckDefFailure(["var x = 'a' .. test_null_job()"], 'E1105', 1)
+  call CheckDefFailure(["var x = 'a' .. test_null_channel()"], 'E1105', 1)
 endfunc
 
 " test multiply, divide, modulo
@@ -1213,27 +1215,27 @@ def Test_expr6()
 
   assert_equal(4, 6 * 4 / 6)
 
-  let x = [2]
-  let y = [3]
+  var x = [2]
+  var y = [3]
   assert_equal(5, x[0] + y[0])
   assert_equal(6, x[0] * y[0])
   if has('float')
-    let xf = [2.0]
-    let yf = [3.0]
+    var xf = [2.0]
+    var yf = [3.0]
     assert_equal(5.0, xf[0]
     			+ yf[0])
     assert_equal(6.0, xf[0]
     			* yf[0])
   endif
 
-  CheckDefFailure(["let x = 6 * xxx"], 'E1001', 1)
+  CheckDefFailure(["var x = 6 * xxx"], 'E1001', 1)
 enddef
 
 def Test_expr6_vim9script()
   # check line continuation
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let var = 11
+      var var = 11
       		* 22
 		/ 3
       assert_equal(80, var)
@@ -1242,7 +1244,7 @@ def Test_expr6_vim9script()
 
   lines =<< trim END
       vim9script
-      let var = 25
+      var var = 25
       		% 10
       assert_equal(5, var)
   END
@@ -1250,7 +1252,7 @@ def Test_expr6_vim9script()
 
   lines =<< trim END
       vim9script
-      let var = 11 *
+      var var = 11 *
       		22 /
 		3
       assert_equal(80, var)
@@ -1307,45 +1309,45 @@ enddef
 
 func Test_expr6_fails()
   let msg = "White space required before and after '*'"
-  call CheckDefFailure(["let x = 1*2"], msg, 1)
-  call CheckDefFailure(["let x = 1 *2"], msg, 1)
-  call CheckDefFailure(["let x = 1* 2"], msg, 1)
+  call CheckDefFailure(["var x = 1*2"], msg, 1)
+  call CheckDefFailure(["var x = 1 *2"], msg, 1)
+  call CheckDefFailure(["var x = 1* 2"], msg, 1)
 
   let msg = "White space required before and after '/'"
-  call CheckDefFailure(["let x = 1/2"], msg, 1)
-  call CheckDefFailure(["let x = 1 /2"], msg, 1)
-  call CheckDefFailure(["let x = 1/ 2"], msg, 1)
+  call CheckDefFailure(["var x = 1/2"], msg, 1)
+  call CheckDefFailure(["var x = 1 /2"], msg, 1)
+  call CheckDefFailure(["var x = 1/ 2"], msg, 1)
 
   let msg = "White space required before and after '%'"
-  call CheckDefFailure(["let x = 1%2"], msg, 1)
-  call CheckDefFailure(["let x = 1 %2"], msg, 1)
-  call CheckDefFailure(["let x = 1% 2"], msg, 1)
+  call CheckDefFailure(["var x = 1%2"], msg, 1)
+  call CheckDefFailure(["var x = 1 %2"], msg, 1)
+  call CheckDefFailure(["var x = 1% 2"], msg, 1)
 
-  call CheckDefFailure(["let x = '1' * '2'"], 'E1036:', 1)
-  call CheckDefFailure(["let x = '1' / '2'"], 'E1036:', 1)
-  call CheckDefFailure(["let x = '1' % '2'"], 'E1035:', 1)
+  call CheckDefFailure(["var x = '1' * '2'"], 'E1036:', 1)
+  call CheckDefFailure(["var x = '1' / '2'"], 'E1036:', 1)
+  call CheckDefFailure(["var x = '1' % '2'"], 'E1035:', 1)
 
-  call CheckDefFailure(["let x = 0z01 * 0z12"], 'E1036:', 1)
-  call CheckDefFailure(["let x = 0z01 / 0z12"], 'E1036:', 1)
-  call CheckDefFailure(["let x = 0z01 % 0z12"], 'E1035:', 1)
+  call CheckDefFailure(["var x = 0z01 * 0z12"], 'E1036:', 1)
+  call CheckDefFailure(["var x = 0z01 / 0z12"], 'E1036:', 1)
+  call CheckDefFailure(["var x = 0z01 % 0z12"], 'E1035:', 1)
 
-  call CheckDefFailure(["let x = [1] * [2]"], 'E1036:', 1)
-  call CheckDefFailure(["let x = [1] / [2]"], 'E1036:', 1)
-  call CheckDefFailure(["let x = [1] % [2]"], 'E1035:', 1)
+  call CheckDefFailure(["var x = [1] * [2]"], 'E1036:', 1)
+  call CheckDefFailure(["var x = [1] / [2]"], 'E1036:', 1)
+  call CheckDefFailure(["var x = [1] % [2]"], 'E1035:', 1)
 
-  call CheckDefFailure(["let x = #{one: 1} * #{two: 2}"], 'E1036:', 1)
-  call CheckDefFailure(["let x = #{one: 1} / #{two: 2}"], 'E1036:', 1)
-  call CheckDefFailure(["let x = #{one: 1} % #{two: 2}"], 'E1035:', 1)
+  call CheckDefFailure(["var x = #{one: 1} * #{two: 2}"], 'E1036:', 1)
+  call CheckDefFailure(["var x = #{one: 1} / #{two: 2}"], 'E1036:', 1)
+  call CheckDefFailure(["var x = #{one: 1} % #{two: 2}"], 'E1035:', 1)
 
-  call CheckDefFailure(["let x = 0xff[1]"], 'E1107:', 1)
+  call CheckDefFailure(["var x = 0xff[1]"], 'E1107:', 1)
   if has('float')
-    call CheckDefFailure(["let x = 0.7[1]"], 'E1107:', 1)
+    call CheckDefFailure(["var x = 0.7[1]"], 'E1107:', 1)
   endif
 endfunc
 
 func Test_expr6_float_fails()
   CheckFeature float
-  call CheckDefFailure(["let x = 1.0 % 2"], 'E1035:', 1)
+  call CheckDefFailure(["var x = 1.0 % 2"], 'E1035:', 1)
 endfunc
 
 " define here to use old style parsing
@@ -1378,14 +1380,14 @@ let $TESTVAR = 'testvar'
 
 " type casts
 def Test_expr7t()
-  let ls: list<string> = ['a', <string>g:string_empty]
-  let ln: list<number> = [<number>g:anint, <number>g:thefour]
-  let nr = <number>234
+  var ls: list<string> = ['a', <string>g:string_empty]
+  var ln: list<number> = [<number>g:anint, <number>g:thefour]
+  var nr = <number>234
   assert_equal(234, nr)
 
-  CheckDefFailure(["let x = <nr>123"], 'E1010:', 1)
-  CheckDefFailure(["let x = <number >123"], 'E1068:', 1)
-  CheckDefFailure(["let x = <number 123"], 'E1104:', 1)
+  CheckDefFailure(["var x = <nr>123"], 'E1010:', 1)
+  CheckDefFailure(["var x = <number >123"], 'E1068:', 1)
+  CheckDefFailure(["var x = <number 123"], 'E1104:', 1)
 enddef
 
 " test low level expression
@@ -1417,7 +1419,7 @@ def Test_expr7_blob()
   assert_equal(g:blob_one, 0z01)
   assert_equal(g:blob_long, 0z0102.0304)
 
-  CheckDefFailure(["let x = 0z123"], 'E973:', 1)
+  CheckDefFailure(["var x = 0z123"], 'E973:', 1)
 enddef
 
 def Test_expr7_string()
@@ -1430,18 +1432,18 @@ def Test_expr7_string()
   assert_equal(g:string_long, "abcdefghijklm")
   assert_equal(g:string_special, "ab\ncd\ref\ekk")
 
-  CheckDefFailure(['let x = "abc'], 'E114:', 1)
-  CheckDefFailure(["let x = 'abc"], 'E115:', 1)
+  CheckDefFailure(['var x = "abc'], 'E114:', 1)
+  CheckDefFailure(["var x = 'abc"], 'E115:', 1)
 enddef
 
 def Test_expr7_vimvar()
-  let old: list<string> = v:oldfiles
-  let compl: dict<any> = v:completed_item
+  var old: list<string> = v:oldfiles
+  var compl: dict<any> = v:completed_item
 
-  CheckDefFailure(["let old: list<number> = v:oldfiles"], 'E1012: Type mismatch; expected list<number> but got list<string>', 1)
+  CheckDefFailure(["var old: list<number> = v:oldfiles"], 'E1012: Type mismatch; expected list<number> but got list<string>', 1)
   new
   exec "normal! afoo fo\<C-N>\<Esc>"
-  CheckDefExecFailure(["let old: dict<number> = v:completed_item"], 'E1012: Type mismatch; expected dict<number> but got dict<string>', 1)
+  CheckDefExecFailure(["var old: dict<number> = v:completed_item"], 'E1012: Type mismatch; expected dict<number> but got dict<string>', 1)
   bwipe!
 enddef
 
@@ -1472,10 +1474,10 @@ def Test_expr7_special()
 enddef
 
 def Test_expr7_special_vim9script()
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let t = true
-      let f = false
+      var t = true
+      var f = false
       assert_equal(v:true, true)
       assert_equal(true, t)
       assert_equal(v:false, false)
@@ -1497,15 +1499,15 @@ def Test_expr7_list()
   assert_equal(g:list_empty, [])
   assert_equal(g:list_empty, [  ])
 
-  let numbers: list<number> = [1, 2, 3]
+  var numbers: list<number> = [1, 2, 3]
   numbers = [1]
   numbers = []
 
-  let strings: list<string> = ['a', 'b', 'c']
+  var strings: list<string> = ['a', 'b', 'c']
   strings = ['x']
   strings = []
 
-  let mixed: list<any> = [1, 'b', false,]
+  var mixed: list<any> = [1, 'b', false,]
   assert_equal(g:list_mixed, mixed)
   assert_equal('b', mixed[1])
 
@@ -1513,7 +1515,7 @@ def Test_expr7_list()
   	2] [3,
 		4]
 
-  let llstring: list<list<string>> = [['text'], []]
+  var llstring: list<list<string>> = [['text'], []]
   llstring = [[], ['text']]
   llstring = [[], []]
 
@@ -1521,30 +1523,30 @@ def Test_expr7_list()
   g:rangelist = range(3)
   CheckDefExecFailure(["var x: list<string> = g:rangelist"], 'E1012: Type mismatch; expected list<string> but got list<number>', 1)
 
-  CheckDefFailure(["let x = 1234[3]"], 'E1107:', 1)
-  CheckDefExecFailure(["let x = g:anint[3]"], 'E1062:', 1)
+  CheckDefFailure(["var x = 1234[3]"], 'E1107:', 1)
+  CheckDefExecFailure(["var x = g:anint[3]"], 'E1062:', 1)
 
-  CheckDefFailure(["let x = g:list_mixed[xxx]"], 'E1001:', 1)
+  CheckDefFailure(["var x = g:list_mixed[xxx]"], 'E1001:', 1)
 
-  CheckDefFailure(["let x = [1,2,3]"], 'E1069:', 1)
-  CheckDefFailure(["let x = [1 ,2, 3]"], 'E1068:', 1)
+  CheckDefFailure(["var x = [1,2,3]"], 'E1069:', 1)
+  CheckDefFailure(["var x = [1 ,2, 3]"], 'E1068:', 1)
 
-  CheckDefExecFailure(["echo 1", "let x = [][0]", "echo 3"], 'E684:', 2)
+  CheckDefExecFailure(["echo 1", "var x = [][0]", "echo 3"], 'E684:', 2)
 
-  CheckDefExecFailure(["let x = g:list_mixed['xx']"], 'E1012:', 1)
-  CheckDefFailure(["let x = g:list_mixed["], 'E1097:', 2)
-  CheckDefFailure(["let x = g:list_mixed[0"], 'E1097:', 2)
-  CheckDefExecFailure(["let x = g:list_empty[3]"], 'E684:', 1)
-  CheckDefExecFailure(["let l: list<number> = [234, 'x']"], 'E1012:', 1)
-  CheckDefExecFailure(["let l: list<number> = ['x', 234]"], 'E1012:', 1)
-  CheckDefExecFailure(["let l: list<string> = [234, 'x']"], 'E1012:', 1)
-  CheckDefExecFailure(["let l: list<string> = ['x', 123]"], 'E1012:', 1)
+  CheckDefExecFailure(["var x = g:list_mixed['xx']"], 'E1012:', 1)
+  CheckDefFailure(["var x = g:list_mixed["], 'E1097:', 2)
+  CheckDefFailure(["var x = g:list_mixed[0"], 'E1097:', 2)
+  CheckDefExecFailure(["var x = g:list_empty[3]"], 'E684:', 1)
+  CheckDefExecFailure(["var l: list<number> = [234, 'x']"], 'E1012:', 1)
+  CheckDefExecFailure(["var l: list<number> = ['x', 234]"], 'E1012:', 1)
+  CheckDefExecFailure(["var l: list<string> = [234, 'x']"], 'E1012:', 1)
+  CheckDefExecFailure(["var l: list<string> = ['x', 123]"], 'E1012:', 1)
 enddef
 
 def Test_expr7_list_vim9script()
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let l = [
+      var l = [
 		11,
 		22,
 		]
@@ -1558,7 +1560,7 @@ def Test_expr7_list_vim9script()
 
   lines =<< trim END
       vim9script
-      let l = [11,
+      var l = [11,
 		22]
       assert_equal([11, 22], l)
   END
@@ -1566,34 +1568,34 @@ def Test_expr7_list_vim9script()
 
   lines =<< trim END
       vim9script
-      let l = [11,22]
+      var l = [11,22]
   END
   CheckScriptFailure(lines, 'E1069:', 2)
 
   lines =<< trim END
       vim9script
-      let l = [11 , 22]
+      var l = [11 , 22]
   END
   CheckScriptFailure(lines, 'E1068:', 2)
 
   lines =<< trim END
     vim9script
-    let l: list<number> = [234, 'x']
+    var l: list<number> = [234, 'x']
   END
   CheckScriptFailure(lines, 'E1012:', 2)
   lines =<< trim END
     vim9script
-    let l: list<number> = ['x', 234]
+    var l: list<number> = ['x', 234]
   END
   CheckScriptFailure(lines, 'E1012:', 2)
   lines =<< trim END
     vim9script
-    let l: list<string> = ['x', 234]
+    var l: list<string> = ['x', 234]
   END
   CheckScriptFailure(lines, 'E1012:', 2)
   lines =<< trim END
     vim9script
-    let l: list<string> = [234, 'x']
+    var l: list<string> = [234, 'x']
   END
   CheckScriptFailure(lines, 'E1012:', 2)
 enddef
@@ -1619,12 +1621,12 @@ def LambdaUsingArg(x: number): func
 enddef
 
 def Test_expr7_lambda()
-  let La = { -> 'result'}
+  var La = { -> 'result'}
   assert_equal('result', La())
   assert_equal([1, 3, 5], [1, 2, 3]->map({key, val -> key + val}))
 
   # line continuation inside lambda with "cond ? expr : expr" works
-  let ll = range(3)
+  var ll = range(3)
   map(ll, {k, v -> v % 2 ? {
 	    '111': 111 } : {}
 	})
@@ -1644,7 +1646,7 @@ def Test_expr7_lambda()
 	})
   assert_equal([111, 222, 111], ll)
 
-  let dl = [{'key': 0}, {'key': 22}]->filter({ _, v -> v['key'] })
+  var dl = [{'key': 0}, {'key': 22}]->filter({ _, v -> v['key'] })
   assert_equal([{'key': 22}], dl)
 
   dl = [{'key': 12}, {'foo': 34}]
@@ -1661,21 +1663,21 @@ def Test_expr7_lambda()
 
   CheckDefFailure(["filter([1, 2], {k,v -> 1})"], 'E1069:', 1)
   # error is in first line of the lambda
-  CheckDefFailure(["let L = {a -> a + b}"], 'E1001:', 0)
+  CheckDefFailure(["var L = {a -> a + b}"], 'E1001:', 0)
 
   assert_equal('xxxyyy', 'xxx'->{a, b -> a .. b}('yyy'))
 
-  CheckDefExecFailure(["let s = 'asdf'->{a -> a}('x')"],
+  CheckDefExecFailure(["var s = 'asdf'->{a -> a}('x')"],
         'E1106: One argument too many')
-  CheckDefExecFailure(["let s = 'asdf'->{a -> a}('x', 'y')"],
+  CheckDefExecFailure(["var s = 'asdf'->{a -> a}('x', 'y')"],
         'E1106: 2 arguments too many')
   CheckDefFailure(["echo 'asdf'->{a -> a}(x)"], 'E1001:', 1)
 enddef
 
 def Test_expr7_lambda_vim9script()
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let v = 10->{a ->
+      var v = 10->{a ->
 	    a
 	      + 2
 	  }()
@@ -1694,11 +1696,11 @@ def Test_expr7_lambda_vim9script()
 enddef
 
 def Test_epxr7_funcref()
-  let lines =<< trim END
+  var lines =<< trim END
     def RetNumber(): number
       return 123
     enddef
-    let FuncRef = RetNumber
+    var FuncRef = RetNumber
     assert_equal(123, FuncRef())
   END
   CheckDefAndScriptSuccess(lines)
@@ -1709,57 +1711,57 @@ def Test_expr7_dict()
   assert_equal(g:dict_empty, {})
   assert_equal(g:dict_empty, {  })
   assert_equal(g:dict_one, {'one': 1})
-  let key = 'one'
-  let val = 1
+  var key = 'one'
+  var val = 1
   assert_equal(g:dict_one, {key: val})
 
-  let numbers: dict<number> = #{a: 1, b: 2, c: 3}
+  var numbers: dict<number> = #{a: 1, b: 2, c: 3}
   numbers = #{a: 1}
   numbers = #{}
 
-  let strings: dict<string> = #{a: 'a', b: 'b', c: 'c'}
+  var strings: dict<string> = #{a: 'a', b: 'b', c: 'c'}
   strings = #{a: 'x'}
   strings = #{}
 
-  let mixed: dict<any> = #{a: 'a', b: 42}
+  var mixed: dict<any> = #{a: 'a', b: 42}
   mixed = #{a: 'x'}
   mixed = #{a: 234}
   mixed = #{}
 
-  let dictlist: dict<list<string>> = #{absent: [], present: ['hi']}
+  var dictlist: dict<list<string>> = #{absent: [], present: ['hi']}
   dictlist = #{absent: ['hi'], present: []}
   dictlist = #{absent: [], present: []}
 
-  let dictdict: dict<dict<string>> = #{one: #{a: 'text'}, two: #{}}
+  var dictdict: dict<dict<string>> = #{one: #{a: 'text'}, two: #{}}
   dictdict = #{one: #{}, two: #{a: 'text'}}
   dictdict = #{one: #{}, two: #{}}
  
-  CheckDefFailure(["let x = #{a:8}"], 'E1069:', 1)
-  CheckDefFailure(["let x = #{a : 8}"], 'E1068:', 1)
-  CheckDefFailure(["let x = #{a :8}"], 'E1068:', 1)
-  CheckDefFailure(["let x = #{a: 8 , b: 9}"], 'E1068:', 1)
+  CheckDefFailure(["var x = #{a:8}"], 'E1069:', 1)
+  CheckDefFailure(["var x = #{a : 8}"], 'E1068:', 1)
+  CheckDefFailure(["var x = #{a :8}"], 'E1068:', 1)
+  CheckDefFailure(["var x = #{a: 8 , b: 9}"], 'E1068:', 1)
 
-  CheckDefFailure(["let x = #{8: 8}"], 'E1014:', 1)
-  CheckDefFailure(["let x = #{xxx}"], 'E720:', 1)
-  CheckDefFailure(["let x = #{xxx: 1", "let y = 2"], 'E722:', 2)
-  CheckDefFailure(["let x = #{xxx: 1,"], 'E723:', 2)
-  CheckDefFailure(["let x = {'a': xxx}"], 'E1001:', 1)
-  CheckDefFailure(["let x = {xxx: 8}"], 'E1001:', 1)
-  CheckDefFailure(["let x = #{a: 1, a: 2}"], 'E721:', 1)
-  CheckDefFailure(["let x = #"], 'E1015:', 1)
-  CheckDefExecFailure(["let x = g:anint.member"], 'E715:', 1)
-  CheckDefExecFailure(["let x = g:dict_empty.member"], 'E716:', 1)
+  CheckDefFailure(["var x = #{8: 8}"], 'E1014:', 1)
+  CheckDefFailure(["var x = #{xxx}"], 'E720:', 1)
+  CheckDefFailure(["var x = #{xxx: 1", "var y = 2"], 'E722:', 2)
+  CheckDefFailure(["var x = #{xxx: 1,"], 'E723:', 2)
+  CheckDefFailure(["var x = {'a': xxx}"], 'E1001:', 1)
+  CheckDefFailure(["var x = {xxx: 8}"], 'E1001:', 1)
+  CheckDefFailure(["var x = #{a: 1, a: 2}"], 'E721:', 1)
+  CheckDefFailure(["var x = #"], 'E1015:', 1)
+  CheckDefExecFailure(["var x = g:anint.member"], 'E715:', 1)
+  CheckDefExecFailure(["var x = g:dict_empty.member"], 'E716:', 1)
 
-  CheckDefExecFailure(['let x: dict<number> = #{a: 234, b: "1"}'], 'E1012:', 1)
-  CheckDefExecFailure(['let x: dict<number> = #{a: "x", b: 134}'], 'E1012:', 1)
-  CheckDefExecFailure(['let x: dict<string> = #{a: 234, b: "1"}'], 'E1012:', 1)
-  CheckDefExecFailure(['let x: dict<string> = #{a: "x", b: 134}'], 'E1012:', 1)
+  CheckDefExecFailure(['var x: dict<number> = #{a: 234, b: "1"}'], 'E1012:', 1)
+  CheckDefExecFailure(['var x: dict<number> = #{a: "x", b: 134}'], 'E1012:', 1)
+  CheckDefExecFailure(['var x: dict<string> = #{a: 234, b: "1"}'], 'E1012:', 1)
+  CheckDefExecFailure(['var x: dict<string> = #{a: "x", b: 134}'], 'E1012:', 1)
 enddef
 
 def Test_expr7_dict_vim9script()
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let d = {
+      var d = {
 		'one':
 		   1,
 		'two': 2,
@@ -1770,14 +1772,14 @@ def Test_expr7_dict_vim9script()
 
   lines =<< trim END
       vim9script
-      let d = { "one": "one", "two": "two", }
+      var d = { "one": "one", "two": "two", }
       assert_equal({'one': 'one', 'two': 'two'}, d)
   END
   CheckScriptSuccess(lines)
 
   lines =<< trim END
       vim9script
-      let d = #{one: 1,
+      var d = #{one: 1,
 		two: 2,
 	       }
       assert_equal({'one': 1, 'two': 2}, d)
@@ -1786,52 +1788,52 @@ def Test_expr7_dict_vim9script()
 
   lines =<< trim END
       vim9script
-      let d = #{one:1, two: 2}
+      var d = #{one:1, two: 2}
   END
   CheckScriptFailure(lines, 'E1069:', 2)
 
   lines =<< trim END
       vim9script
-      let d = #{one: 1,two: 2}
+      var d = #{one: 1,two: 2}
   END
   CheckScriptFailure(lines, 'E1069:', 2)
 
   lines =<< trim END
       vim9script
-      let d = #{one : 1}
+      var d = #{one : 1}
   END
   CheckScriptFailure(lines, 'E1068:', 2)
 
   lines =<< trim END
       vim9script
-      let d = #{one:1}
+      var d = #{one:1}
   END
   CheckScriptFailure(lines, 'E1069:', 2)
 
   lines =<< trim END
       vim9script
-      let d = #{one: 1 , two: 2}
+      var d = #{one: 1 , two: 2}
   END
   CheckScriptFailure(lines, 'E1068:', 2)
 
   lines =<< trim END
     vim9script
-    let l: dict<number> = #{a: 234, b: 'x'}
+    var l: dict<number> = #{a: 234, b: 'x'}
   END
   CheckScriptFailure(lines, 'E1012:', 2)
   lines =<< trim END
     vim9script
-    let l: dict<number> = #{a: 'x', b: 234}
+    var l: dict<number> = #{a: 'x', b: 234}
   END
   CheckScriptFailure(lines, 'E1012:', 2)
   lines =<< trim END
     vim9script
-    let l: dict<string> = #{a: 'x', b: 234}
+    var l: dict<string> = #{a: 'x', b: 234}
   END
   CheckScriptFailure(lines, 'E1012:', 2)
   lines =<< trim END
     vim9script
-    let l: dict<string> = #{a: 234, b: 'x'}
+    var l: dict<string> = #{a: 234, b: 'x'}
   END
   CheckScriptFailure(lines, 'E1012:', 2)
 enddef
@@ -1840,7 +1842,7 @@ let g:oneString = 'one'
 
 def Test_expr_member()
   assert_equal(1, g:dict_one.one)
-  let d: dict<number> = g:dict_one
+  var d: dict<number> = g:dict_one
   assert_equal(1, d['one'])
   assert_equal(1, d[
 		  'one'
@@ -1857,13 +1859,13 @@ def Test_expr_member()
   assert_equal('one', #{one: 'one'}.one)
   assert_equal('one', #{one: 'one'}[g:oneString])
 
-  CheckDefFailure(["let x = g:dict_one.#$!"], 'E1002:', 1)
-  CheckDefExecFailure(["let d: dict<any>", "echo d['a']"], 'E716:', 2)
-  CheckDefExecFailure(["let d: dict<number>", "d = g:list_empty"], 'E1012: Type mismatch; expected dict<number> but got list<unknown>', 2)
+  CheckDefFailure(["var x = g:dict_one.#$!"], 'E1002:', 1)
+  CheckDefExecFailure(["var d: dict<any>", "echo d['a']"], 'E716:', 2)
+  CheckDefExecFailure(["var d: dict<number>", "d = g:list_empty"], 'E1012: Type mismatch; expected dict<number> but got list<unknown>', 2)
 enddef
 
 def Test_expr7_any_index_slice()
-  let lines =<< trim END
+  var lines =<< trim END
     # getting the one member should clear the list only after getting the item
     assert_equal('bbb', ['aaa', 'bbb', 'ccc'][1])
 
@@ -1950,9 +1952,9 @@ def Test_expr7_any_index_slice()
 enddef
 
 def Test_expr_member_vim9script()
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let d = #{one:
+      var d = #{one:
       		'one',
 		two: 'two',
 		1: 1,
@@ -1972,7 +1974,7 @@ def Test_expr_member_vim9script()
 
   lines =<< trim END
       vim9script
-      let l = [1,
+      var l = [1,
 		  2,
 		  3, 4
 		  ]
@@ -2011,14 +2013,14 @@ def Test_expr7_environment()
   assert_equal('testvar', $TESTVAR)
   assert_equal('', $ASDF_ASD_XXX)
 
-  CheckDefFailure(["let x = $$$"], 'E1002:', 1)
+  CheckDefFailure(["var x = $$$"], 'E1002:', 1)
 enddef
 
 def Test_expr7_register()
   @a = 'register a'
   assert_equal('register a', @a)
 
-  let fname = expand('%')
+  var fname = expand('%')
   assert_equal(fname, @%)
 
   feedkeys(":echo 'some'\<CR>", "xt")
@@ -2076,9 +2078,9 @@ def Test_expr7_parens()
 enddef
 
 def Test_expr7_parens_vim9script()
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let s = (
+      var s = (
 		'one'
 		..
 		'two'
@@ -2091,7 +2093,7 @@ enddef
 def Test_expr7_negate()
   assert_equal(-99, -99)
   assert_equal(99, --99)
-  let nr = 88
+  var nr = 88
   assert_equal(-88, -nr)
   assert_equal(88, --nr)
 enddef
@@ -2111,21 +2113,21 @@ def Test_expr7_call()
   assert_equal(true, !range(5)->empty())
   assert_equal([0, 1, 2], --3->range())
 
-  CheckDefFailure(["let x = 'yes'->Echo"], 'E107:', 1)
+  CheckDefFailure(["var x = 'yes'->Echo"], 'E107:', 1)
   CheckScriptFailure([
    "vim9script",
-   "let x = substitute ('x', 'x', 'x', 'x')"
+   "var x = substitute ('x', 'x', 'x', 'x')"
    ], 'E121:', 2)
-  CheckDefFailure(["let Ref = function('len' [1, 2])"], 'E1123:', 1)
+  CheckDefFailure(["var Ref = function('len' [1, 2])"], 'E1123:', 1)
 
-  let auto_lines =<< trim END
+  var auto_lines =<< trim END
       def g:some#func(): string
 	return 'found'
       enddef
   END
   mkdir('Xruntime/autoload', 'p')
   writefile(auto_lines, 'Xruntime/autoload/some.vim')
-  let save_rtp = &rtp
+  var save_rtp = &rtp
   &rtp = getcwd() .. '/Xruntime,' .. &rtp
   assert_equal('found', g:some#func())
   assert_equal('found', some#func())
@@ -2136,7 +2138,7 @@ enddef
 
 
 def Test_expr7_not()
-  let lines =<< trim END
+  var lines =<< trim END
       assert_equal(true, !'')
       assert_equal(true, ![])
       assert_equal(false, !'asdf')
@@ -2171,24 +2173,24 @@ def Test_expr7_not()
 enddef
 
 func Test_expr7_fails()
-  call CheckDefFailure(["let x = (12"], "E110:", 1)
+  call CheckDefFailure(["var x = (12"], "E110:", 1)
 
-  call CheckDefFailure(["let x = -'xx'"], "E1030:", 1)
-  call CheckDefFailure(["let x = +'xx'"], "E1030:", 1)
-  call CheckDefFailure(["let x = -0z12"], "E974:", 1)
-  call CheckDefExecFailure(["let x = -[8]"], "E39:", 1)
-  call CheckDefExecFailure(["let x = -{'a': 1}"], "E39:", 1)
+  call CheckDefFailure(["var x = -'xx'"], "E1030:", 1)
+  call CheckDefFailure(["var x = +'xx'"], "E1030:", 1)
+  call CheckDefFailure(["var x = -0z12"], "E974:", 1)
+  call CheckDefExecFailure(["var x = -[8]"], "E39:", 1)
+  call CheckDefExecFailure(["var x = -{'a': 1}"], "E39:", 1)
 
-  call CheckDefFailure(["let x = @"], "E1002:", 1)
-  call CheckDefFailure(["let x = @<"], "E354:", 1)
+  call CheckDefFailure(["var x = @"], "E1002:", 1)
+  call CheckDefFailure(["var x = @<"], "E354:", 1)
 
-  call CheckDefFailure(["let x = [1, 2"], "E697:", 2)
-  call CheckDefFailure(["let x = [notfound]"], "E1001:", 1)
+  call CheckDefFailure(["var x = [1, 2"], "E697:", 2)
+  call CheckDefFailure(["var x = [notfound]"], "E1001:", 1)
 
-  call CheckDefFailure(["let x = { -> 123) }"], "E451:", 1)
-  call CheckDefFailure(["let x = 123->{x -> x + 5) }"], "E451:", 1)
+  call CheckDefFailure(["var x = { -> 123) }"], "E451:", 1)
+  call CheckDefFailure(["var x = 123->{x -> x + 5) }"], "E451:", 1)
 
-  call CheckDefFailure(["let x = &notexist"], 'E113:', 1)
+  call CheckDefFailure(["var x = &notexist"], 'E113:', 1)
   call CheckDefFailure(["&grepprg = [343]"], 'E1012:', 1)
 
   call CheckDefExecFailure(["echo s:doesnt_exist"], 'E121:', 1)
@@ -2198,12 +2200,12 @@ func Test_expr7_fails()
   call CheckDefFailure(["echo l:somevar"], 'E1075:', 1)
   call CheckDefFailure(["echo x:somevar"], 'E1075:', 1)
 
-  call CheckDefExecFailure(["let x = +g:astring"], 'E1030:', 1)
-  call CheckDefExecFailure(["let x = +g:ablob"], 'E974:', 1)
-  call CheckDefExecFailure(["let x = +g:alist"], 'E745:', 1)
-  call CheckDefExecFailure(["let x = +g:adict"], 'E728:', 1)
+  call CheckDefExecFailure(["var x = +g:astring"], 'E1030:', 1)
+  call CheckDefExecFailure(["var x = +g:ablob"], 'E974:', 1)
+  call CheckDefExecFailure(["var x = +g:alist"], 'E745:', 1)
+  call CheckDefExecFailure(["var x = +g:adict"], 'E728:', 1)
 
-  call CheckDefFailure(["let x = ''", "let y = x.memb"], 'E715:', 2)
+  call CheckDefFailure(["var x = ''", "var y = x.memb"], 'E715:', 2)
 
   call CheckDefFailure(["'yes'->", "Echo()"], 'E488: Trailing characters: ->', 1)
 
@@ -2232,11 +2234,11 @@ def Test_expr7_trailing()
   assert_equal('nothing', g:CallMe('nothing'))
 
   # partial call
-  let Part = function('g:CallMe')
+  var Part = function('g:CallMe')
   assert_equal('yes', Part('yes'))
 
   # funcref call, using list index
-  let l = []
+  var l = []
   g:Funcrefs[0](l, 2)
   assert_equal([2], l)
 
@@ -2251,13 +2253,13 @@ def Test_expr7_trailing()
   assert_equal([2, 5, 8], l)
 
   # dict member
-  let d = #{key: 123}
+  var d = #{key: 123}
   assert_equal(123, d.key)
 enddef
 
 def Test_expr7_string_subscript()
-  let lines =<< trim END
-    let text = 'abcdef'
+  var lines =<< trim END
+    var text = 'abcdef'
     assert_equal('', text[-1])
     assert_equal('a', text[0])
     assert_equal('e', text[4])
@@ -2303,8 +2305,8 @@ def Test_expr7_string_subscript()
 enddef
 
 def Test_expr7_list_subscript()
-  let lines =<< trim END
-    let list = [0, 1, 2, 3, 4]
+  var lines =<< trim END
+    var list = [0, 1, 2, 3, 4]
     assert_equal(0, list[0])
     assert_equal(4, list[4])
     assert_equal(4, list[-1])
@@ -2330,25 +2332,25 @@ def Test_expr7_list_subscript()
   CheckDefSuccess(lines)
   CheckScriptSuccess(['vim9script'] + lines)
 
-  lines = ['let l = [0, 1, 2]', 'echo l[g:astring : g:theone]']
+  lines = ['var l = [0, 1, 2]', 'echo l[g:astring : g:theone]']
   CheckDefExecFailure(lines, 'E1012:')
   CheckScriptFailure(['vim9script'] + lines, 'E1030:', 3)
 enddef
 
 def Test_expr7_dict_subscript()
-  let lines =<< trim END
+  var lines =<< trim END
       vim9script
-      let l = [#{lnum: 2}, #{lnum: 1}]
-      let res = l[0].lnum > l[1].lnum
+      var l = [#{lnum: 2}, #{lnum: 1}]
+      var res = l[0].lnum > l[1].lnum
       assert_true(res)
   END
   CheckScriptSuccess(lines)
 enddef
 
 def Test_expr7_subscript_linebreak()
-  let range = range(
+  var range = range(
   		3)
-  let l = range
+  var l = range
 	->map('string(v:key)')
   assert_equal(['0', '1', '2'], l)
 
@@ -2373,7 +2375,7 @@ def Test_expr7_subscript_linebreak()
   assert_equal('1', l[
 	1])
 
-  let d = #{one: 33}
+  var d = #{one: 33}
   assert_equal(33, d.
 	one)
 enddef
@@ -2386,8 +2388,8 @@ def Test_expr7_method_call()
   assert_equal(['first', 'second', 'third', 'last'], getline(1, '$'))
   bwipe!
 
-  let bufnr = bufnr()
-  let loclist = [#{bufnr: bufnr, lnum: 42, col: 17, text: 'wrong'}]
+  var bufnr = bufnr()
+  var loclist = [#{bufnr: bufnr, lnum: 42, col: 17, text: 'wrong'}]
   loclist->setloclist(0)
   assert_equal([#{bufnr: bufnr,
   		lnum: 42,
@@ -2401,18 +2403,18 @@ def Test_expr7_method_call()
 		module: ''}
 		], getloclist(0))
 
-  let result: bool = get(#{n: 0}, 'n', 0)
+  var result: bool = get(#{n: 0}, 'n', 0)
   assert_equal(false, result)
 enddef
 
 func Test_expr7_trailing_fails()
-  call CheckDefFailure(['let l = [2]', 'l->{l -> add(l, 8)}'], 'E107:', 2)
-  call CheckDefFailure(['let l = [2]', 'l->{l -> add(l, 8)} ()'], 'E274:', 2)
+  call CheckDefFailure(['var l = [2]', 'l->{l -> add(l, 8)}'], 'E107:', 2)
+  call CheckDefFailure(['var l = [2]', 'l->{l -> add(l, 8)} ()'], 'E274:', 2)
 endfunc
 
 func Test_expr_fails()
-  call CheckDefFailure(["let x = '1'is2"], 'E488:', 1)
-  call CheckDefFailure(["let x = '1'isnot2"], 'E488:', 1)
+  call CheckDefFailure(["var x = '1'is2"], 'E488:', 1)
+  call CheckDefFailure(["var x = '1'isnot2"], 'E488:', 1)
 
   call CheckDefFailure(["CallMe ('yes')"], 'E476:', 1)
   call CheckScriptFailure(["CallMe ('yes')"], 'E492:', 1)
@@ -2420,8 +2422,8 @@ func Test_expr_fails()
   call CheckDefFailure(["CallMe2('yes' , 'no')"], 'E1068:', 1)
 
   call CheckDefFailure(["v:nosuch += 3"], 'E1001:', 1)
-  call CheckDefFailure(["let v:statusmsg = ''"], 'E1016: Cannot declare a v: variable:', 1)
-  call CheckDefFailure(["let asdf = v:nosuch"], 'E1001:', 1)
+  call CheckDefFailure(["var v:statusmsg = ''"], 'E1016: Cannot declare a v: variable:', 1)
+  call CheckDefFailure(["var asdf = v:nosuch"], 'E1001:', 1)
 
   call CheckDefFailure(["echo len('asdf'"], 'E110:', 2)
   call CheckDefFailure(["echo Func0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789()"], 'E1011:', 1)
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1759,
+/**/
     1758,
 /**/
     1757,