Patch 8.2.1777
Problem:    Vim9: some assignment tests in the wrong file.
Solution:   Move assignment tests to test_vim9_assign.
Files:      src/testdir/test_vim9_assign.vim, src/testdir/test_vim9_script.vim


*** ../vim-8.2.1776/src/testdir/test_vim9_assign.vim    2020-09-27 
22:47:01.880163387 +0200
--- src/testdir/test_vim9_assign.vim    2020-09-30 22:57:48.136647924 +0200
***************
*** 768,771 ****
--- 768,966 ----
    CheckScriptFailure(lines, 'E990:')
  enddef
  
+ def Test_let_func_call()
+   var lines =<< trim END
+     vim9script
+     func GetValue()
+       if exists('g:count')
+         let g:count += 1
+       else
+         let g:count = 1
+       endif
+       return 'this'
+     endfunc
+     var val: string = GetValue() 
+     # env var is always a string
+     var env = $TERM
+   END
+   writefile(lines, 'Xfinished')
+   source Xfinished
+   # GetValue() is not called during discovery phase
+   assert_equal(1, g:count)
+ 
+   unlet g:count
+   delete('Xfinished')
+ enddef
+ 
+ def Test_let_missing_type()
+   var lines =<< trim END
+     vim9script
+     var name = g:unknown
+   END
+   CheckScriptFailure(lines, 'E121:')
+ 
+   lines =<< trim END
+     vim9script
+     var nr: number = 123
+     var name = nr
+   END
+   CheckScriptSuccess(lines)
+ enddef
+ 
+ def Test_let_declaration()
+   var lines =<< trim END
+     vim9script
+     var name: string
+     g:var_uninit = name
+     name = 'text'
+     g:var_test = name
+     # prefixing s: is optional
+     s:name = 'prefixed'
+     g:var_prefixed = s:name
+ 
+     var s:other: number
+     other = 1234
+     g:other_var = other
+ 
+     # type is inferred
+     s:dict = {'a': 222}
+     def GetDictVal(key: any)
+       g:dict_val = s:dict[key]
+     enddef
+     GetDictVal('a')
+   END
+   CheckScriptSuccess(lines)
+   assert_equal('', g:var_uninit)
+   assert_equal('text', g:var_test)
+   assert_equal('prefixed', g:var_prefixed)
+   assert_equal(1234, g:other_var)
+   assert_equal(222, g:dict_val)
+ 
+   unlet g:var_uninit
+   unlet g:var_test
+   unlet g:var_prefixed
+   unlet g:other_var
+ enddef
+ 
+ def Test_let_declaration_fails()
+   var lines =<< trim END
+     vim9script
+     final var: string
+   END
+   CheckScriptFailure(lines, 'E1125:')
+ 
+   lines =<< trim END
+     vim9script
+     const var: string
+   END
+   CheckScriptFailure(lines, 'E1021:')
+ 
+   lines =<< trim END
+     vim9script
+     var 9var: string
+   END
+   CheckScriptFailure(lines, 'E475:')
+ enddef
+ 
+ def Test_let_type_check()
+   var lines =<< trim END
+     vim9script
+     var name: string
+     name = 1234
+   END
+   CheckScriptFailure(lines, 'E1012:')
+ 
+   lines =<< trim END
+     vim9script
+     var name:string
+   END
+   CheckScriptFailure(lines, 'E1069:')
+ 
+   lines =<< trim END
+     vim9script
+     var name: asdf
+   END
+   CheckScriptFailure(lines, 'E1010:')
+ 
+   lines =<< trim END
+     vim9script
+     var s:l: list<number>
+     s:l = []
+   END
+   CheckScriptSuccess(lines)
+ 
+   lines =<< trim END
+     vim9script
+     var s:d: dict<number>
+     s:d = {}
+   END
+   CheckScriptSuccess(lines)
+ enddef
+ 
+ let g:dict_number = #{one: 1, two: 2}
+ 
+ def Test_let_list_dict_type()
+   var ll: list<number>
+   ll = [1, 2, 2, 3, 3, 3]->uniq()
+   ll->assert_equal([1, 2, 3])
+ 
+   var dd: dict<number>
+   dd = g:dict_number
+   dd->assert_equal(g:dict_number)
+ 
+   var lines =<< trim END
+       var ll: list<number>
+       ll = [1, 2, 3]->map('"one"')
+   END
+   CheckDefExecFailure(lines, 'E1012: Type mismatch; expected list<number> but 
got list<string>')
+ enddef
+ 
+ def Test_unlet()
+   g:somevar = 'yes'
+   assert_true(exists('g:somevar'))
+   unlet g:somevar
+   assert_false(exists('g:somevar'))
+   unlet! g:somevar
+ 
+   # also works for script-local variable in legacy Vim script
+   s:somevar = 'legacy'
+   assert_true(exists('s:somevar'))
+   unlet s:somevar
+   assert_false(exists('s:somevar'))
+   unlet! s:somevar
+ 
+   CheckScriptFailure([
+    'vim9script',
+    'var svar = 123',
+    'unlet svar',
+    ], 'E1081:')
+   CheckScriptFailure([
+    'vim9script',
+    'var svar = 123',
+    'unlet s:svar',
+    ], 'E1081:')
+   CheckScriptFailure([
+    'vim9script',
+    'var svar = 123',
+    'def Func()',
+    '  unlet svar',
+    'enddef',
+    'defcompile',
+    ], 'E1081:')
+   CheckScriptFailure([
+    'vim9script',
+    'var svar = 123',
+    'def Func()',
+    '  unlet s:svar',
+    'enddef',
+    'defcompile',
+    ], 'E1081:')
+ 
+   $ENVVAR = 'foobar'
+   assert_equal('foobar', $ENVVAR)
+   unlet $ENVVAR
+   assert_equal('', $ENVVAR)
+ enddef
+ 
+ 
  " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
*** ../vim-8.2.1776/src/testdir/test_vim9_script.vim    2020-09-27 
22:47:01.880163387 +0200
--- src/testdir/test_vim9_script.vim    2020-09-30 22:57:13.912773616 +0200
***************
*** 29,81 ****
  let g:astring = 'text'
  let g:anumber = 123
  
- def Test_unlet()
-   g:somevar = 'yes'
-   assert_true(exists('g:somevar'))
-   unlet g:somevar
-   assert_false(exists('g:somevar'))
-   unlet! g:somevar
- 
-   # also works for script-local variable in legacy Vim script
-   s:somevar = 'legacy'
-   assert_true(exists('s:somevar'))
-   unlet s:somevar
-   assert_false(exists('s:somevar'))
-   unlet! s:somevar
- 
-   CheckScriptFailure([
-    'vim9script',
-    'var svar = 123',
-    'unlet svar',
-    ], 'E1081:')
-   CheckScriptFailure([
-    'vim9script',
-    'var svar = 123',
-    'unlet s:svar',
-    ], 'E1081:')
-   CheckScriptFailure([
-    'vim9script',
-    'var svar = 123',
-    'def Func()',
-    '  unlet svar',
-    'enddef',
-    'defcompile',
-    ], 'E1081:')
-   CheckScriptFailure([
-    'vim9script',
-    'var svar = 123',
-    'def Func()',
-    '  unlet s:svar',
-    'enddef',
-    'defcompile',
-    ], 'E1081:')
- 
-   $ENVVAR = 'foobar'
-   assert_equal('foobar', $ENVVAR)
-   unlet $ENVVAR
-   assert_equal('', $ENVVAR)
- enddef
- 
  def Test_delfunction()
    # Check function is defined in script namespace
    CheckScriptSuccess([
--- 29,34 ----
***************
*** 2460,2612 ****
    delete('Xfinished')
  enddef
  
- def Test_let_func_call()
-   var lines =<< trim END
-     vim9script
-     func GetValue()
-       if exists('g:count')
-         let g:count += 1
-       else
-         let g:count = 1
-       endif
-       return 'this'
-     endfunc
-     var val: string = GetValue() 
-     # env var is always a string
-     var env = $TERM
-   END
-   writefile(lines, 'Xfinished')
-   source Xfinished
-   # GetValue() is not called during discovery phase
-   assert_equal(1, g:count)
- 
-   unlet g:count
-   delete('Xfinished')
- enddef
- 
- def Test_let_missing_type()
-   var lines =<< trim END
-     vim9script
-     var name = g:unknown
-   END
-   CheckScriptFailure(lines, 'E121:')
- 
-   lines =<< trim END
-     vim9script
-     var nr: number = 123
-     var name = nr
-   END
-   CheckScriptSuccess(lines)
- enddef
- 
- def Test_let_declaration()
-   var lines =<< trim END
-     vim9script
-     var name: string
-     g:var_uninit = name
-     name = 'text'
-     g:var_test = name
-     # prefixing s: is optional
-     s:name = 'prefixed'
-     g:var_prefixed = s:name
- 
-     var s:other: number
-     other = 1234
-     g:other_var = other
- 
-     # type is inferred
-     s:dict = {'a': 222}
-     def GetDictVal(key: any)
-       g:dict_val = s:dict[key]
-     enddef
-     GetDictVal('a')
-   END
-   CheckScriptSuccess(lines)
-   assert_equal('', g:var_uninit)
-   assert_equal('text', g:var_test)
-   assert_equal('prefixed', g:var_prefixed)
-   assert_equal(1234, g:other_var)
-   assert_equal(222, g:dict_val)
- 
-   unlet g:var_uninit
-   unlet g:var_test
-   unlet g:var_prefixed
-   unlet g:other_var
- enddef
- 
- def Test_let_declaration_fails()
-   var lines =<< trim END
-     vim9script
-     final var: string
-   END
-   CheckScriptFailure(lines, 'E1125:')
- 
-   lines =<< trim END
-     vim9script
-     const var: string
-   END
-   CheckScriptFailure(lines, 'E1021:')
- 
-   lines =<< trim END
-     vim9script
-     var 9var: string
-   END
-   CheckScriptFailure(lines, 'E475:')
- enddef
- 
- def Test_let_type_check()
-   var lines =<< trim END
-     vim9script
-     var name: string
-     name = 1234
-   END
-   CheckScriptFailure(lines, 'E1012:')
- 
-   lines =<< trim END
-     vim9script
-     var name:string
-   END
-   CheckScriptFailure(lines, 'E1069:')
- 
-   lines =<< trim END
-     vim9script
-     var name: asdf
-   END
-   CheckScriptFailure(lines, 'E1010:')
- 
-   lines =<< trim END
-     vim9script
-     var s:l: list<number>
-     s:l = []
-   END
-   CheckScriptSuccess(lines)
- 
-   lines =<< trim END
-     vim9script
-     var s:d: dict<number>
-     s:d = {}
-   END
-   CheckScriptSuccess(lines)
- enddef
- 
- let g:dict_number = #{one: 1, two: 2}
- 
- def Test_let_list_dict_type()
-   var ll: list<number>
-   ll = [1, 2, 2, 3, 3, 3]->uniq()
-   ll->assert_equal([1, 2, 3])
- 
-   var dd: dict<number>
-   dd = g:dict_number
-   dd->assert_equal(g:dict_number)
- 
-   var lines =<< trim END
-       var ll: list<number>
-       ll = [1, 2, 3]->map('"one"')
-   END
-   CheckDefExecFailure(lines, 'E1012: Type mismatch; expected list<number> but 
got list<string>')
- enddef
- 
  def Test_forward_declaration()
    var lines =<< trim END
      vim9script
--- 2413,2418 ----
*** ../vim-8.2.1776/src/version.c       2020-09-30 22:45:35.687288258 +0200
--- src/version.c       2020-09-30 22:59:17.428319410 +0200
***************
*** 752,753 ****
--- 752,755 ----
  {   /* Add new patch number below this line */
+ /**/
+     1777,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
28. You have comandeered your teenager's phone line for the net and even his
    friends know not to call on his line anymore.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/202009302100.08UL08aH1067966%40masaka.moolenaar.net.

Raspunde prin e-mail lui