comparison src/testdir/test_vim9_assign.vim @ 23124:f8cd5a5e03c4 v8.2.2108

patch 8.2.2108: Vim9: no test to check for :let error Commit: https://github.com/vim/vim/commit/083966f671475ae1b67f746f0b3f5309a45dfd8f Author: Bram Moolenaar <Bram@vim.org> Date: Tue Dec 8 11:29:40 2020 +0100 patch 8.2.2108: Vim9: no test to check for :let error Problem: Vim9: no test to check for :let error. Solution: Add a test. Rename tests from _let_ to _var_.
author Bram Moolenaar <Bram@vim.org>
date Tue, 08 Dec 2020 11:30:06 +0100
parents 60a0221beab0
children 1a9705075244
comparison
equal deleted inserted replaced
23123:056a2a041cf2 23124:f8cd5a5e03c4
993 [END] 993 [END]
994 CheckScriptFailure(lines, 'E990:') 994 CheckScriptFailure(lines, 'E990:')
995 delfunc! g:Func 995 delfunc! g:Func
996 enddef 996 enddef
997 997
998 def Test_let_func_call() 998 def Test_var_func_call()
999 var lines =<< trim END 999 var lines =<< trim END
1000 vim9script 1000 vim9script
1001 func GetValue() 1001 func GetValue()
1002 if exists('g:count') 1002 if exists('g:count')
1003 let g:count += 1 1003 let g:count += 1
1017 1017
1018 unlet g:count 1018 unlet g:count
1019 delete('Xfinished') 1019 delete('Xfinished')
1020 enddef 1020 enddef
1021 1021
1022 def Test_let_missing_type() 1022 def Test_var_missing_type()
1023 var lines =<< trim END 1023 var lines =<< trim END
1024 vim9script 1024 vim9script
1025 var name = g:unknown 1025 var name = g:unknown
1026 END 1026 END
1027 CheckScriptFailure(lines, 'E121:') 1027 CheckScriptFailure(lines, 'E121:')
1032 var name = nr 1032 var name = nr
1033 END 1033 END
1034 CheckScriptSuccess(lines) 1034 CheckScriptSuccess(lines)
1035 enddef 1035 enddef
1036 1036
1037 def Test_let_declaration() 1037 def Test_var_declaration()
1038 var lines =<< trim END 1038 var lines =<< trim END
1039 vim9script 1039 vim9script
1040 var name: string 1040 var name: string
1041 g:var_uninit = name 1041 g:var_uninit = name
1042 name = 'text' 1042 name = 'text'
1067 unlet g:var_test 1067 unlet g:var_test
1068 unlet g:var_prefixed 1068 unlet g:var_prefixed
1069 unlet g:other_var 1069 unlet g:other_var
1070 enddef 1070 enddef
1071 1071
1072 def Test_let_declaration_fails() 1072 def Test_var_declaration_fails()
1073 var lines =<< trim END 1073 var lines =<< trim END
1074 vim9script 1074 vim9script
1075 final var: string 1075 final var: string
1076 END 1076 END
1077 CheckScriptFailure(lines, 'E1125:') 1077 CheckScriptFailure(lines, 'E1125:')
1087 var 9var: string 1087 var 9var: string
1088 END 1088 END
1089 CheckScriptFailure(lines, 'E475:') 1089 CheckScriptFailure(lines, 'E475:')
1090 enddef 1090 enddef
1091 1091
1092 def Test_let_type_check() 1092 def Test_var_type_check()
1093 var lines =<< trim END 1093 var lines =<< trim END
1094 vim9script 1094 vim9script
1095 var name: string 1095 var name: string
1096 name = 1234 1096 name = 1234
1097 END 1097 END
1124 CheckScriptSuccess(lines) 1124 CheckScriptSuccess(lines)
1125 enddef 1125 enddef
1126 1126
1127 let g:dict_number = #{one: 1, two: 2} 1127 let g:dict_number = #{one: 1, two: 2}
1128 1128
1129 def Test_let_list_dict_type() 1129 def Test_var_list_dict_type()
1130 var ll: list<number> 1130 var ll: list<number>
1131 ll = [1, 2, 2, 3, 3, 3]->uniq() 1131 ll = [1, 2, 2, 3, 3, 3]->uniq()
1132 ll->assert_equal([1, 2, 3]) 1132 ll->assert_equal([1, 2, 3])
1133 1133
1134 var dd: dict<number> 1134 var dd: dict<number>
1138 var lines =<< trim END 1138 var lines =<< trim END
1139 var ll: list<number> 1139 var ll: list<number>
1140 ll = [1, 2, 3]->map('"one"') 1140 ll = [1, 2, 3]->map('"one"')
1141 END 1141 END
1142 CheckDefExecFailure(lines, 'E1012: Type mismatch; expected list<number> but got list<string>') 1142 CheckDefExecFailure(lines, 'E1012: Type mismatch; expected list<number> but got list<string>')
1143 enddef
1144
1145 def Test_cannot_use_let()
1146 CheckDefAndScriptFailure(['let a = 34'], 'E1126:', 1)
1143 enddef 1147 enddef
1144 1148
1145 def Test_unlet() 1149 def Test_unlet()
1146 g:somevar = 'yes' 1150 g:somevar = 'yes'
1147 assert_true(exists('g:somevar')) 1151 assert_true(exists('g:somevar'))