Mercurial > vim
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 |