comparison src/testdir/test_vim9_builtin.vim @ 30584:ee039a6049ff v9.0.0627

patch 9.0.0627: "const" and "final" both make the type a constant Commit: https://github.com/vim/vim/commit/6586a015144f15a979d573a79d91e700e4b3009f Author: Bram Moolenaar <Bram@vim.org> Date: Fri Sep 30 11:04:50 2022 +0100 patch 9.0.0627: "const" and "final" both make the type a constant Problem: "const" and "final" both make the type a constant. (Daniel Steinberg) Solution: Only have "const" make the type a constant.
author Bram Moolenaar <Bram@vim.org>
date Fri, 30 Sep 2022 12:15:04 +0200
parents 72e6073a2822
children 56fabd53c7b8
comparison
equal deleted inserted replaced
30583:fc88f4597670 30584:ee039a6049ff
188 var lines =<< trim END 188 var lines =<< trim END
189 const l = [1, 2] 189 const l = [1, 2]
190 add(l, 3) 190 add(l, 3)
191 END 191 END
192 v9.CheckDefFailure(lines, 'E1307: Argument 1: Trying to modify a const list<number>') 192 v9.CheckDefFailure(lines, 'E1307: Argument 1: Trying to modify a const list<number>')
193
194 lines =<< trim END
195 final l = [1, 2]
196 add(l, 3)
197 assert_equal([1, 2, 3], l)
198 END
199 v9.CheckDefSuccess(lines)
193 200
194 lines =<< trim END 201 lines =<< trim END
195 const b = 0z0102 202 const b = 0z0102
196 add(b, 0z03) 203 add(b, 0z03)
197 END 204 END
1206 lines =<< trim END 1213 lines =<< trim END
1207 const d = {a: 1, b: 2} 1214 const d = {a: 1, b: 2}
1208 extend(d, {c: 3}) 1215 extend(d, {c: 3})
1209 END 1216 END
1210 v9.CheckDefFailure(lines, 'E1307: Argument 1: Trying to modify a const dict<number>') 1217 v9.CheckDefFailure(lines, 'E1307: Argument 1: Trying to modify a const dict<number>')
1218
1219 lines =<< trim END
1220 final d = {a: 1, b: 2}
1221 extend(d, {c: 3})
1222 assert_equal({a: 1, b: 2, c: 3}, d)
1223 END
1224 v9.CheckDefSuccess(lines)
1211 1225
1212 # item in a for loop is const 1226 # item in a for loop is const
1213 lines =<< trim END 1227 lines =<< trim END
1214 var l: list<dict<any>> = [{n: 1}] 1228 var l: list<dict<any>> = [{n: 1}]
1215 for item in l 1229 for item in l