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.
diff --git a/src/testdir/test_vim9_builtin.vim b/src/testdir/test_vim9_builtin.vim
index 4ebf65a..151ffed 100644
--- a/src/testdir/test_vim9_builtin.vim
+++ b/src/testdir/test_vim9_builtin.vim
@@ -192,6 +192,13 @@
v9.CheckDefFailure(lines, 'E1307: Argument 1: Trying to modify a const list<number>')
lines =<< trim END
+ final l = [1, 2]
+ add(l, 3)
+ assert_equal([1, 2, 3], l)
+ END
+ v9.CheckDefSuccess(lines)
+
+ lines =<< trim END
const b = 0z0102
add(b, 0z03)
END
@@ -1209,6 +1216,13 @@
END
v9.CheckDefFailure(lines, 'E1307: Argument 1: Trying to modify a const dict<number>')
+ lines =<< trim END
+ final d = {a: 1, b: 2}
+ extend(d, {c: 3})
+ assert_equal({a: 1, b: 2, c: 3}, d)
+ END
+ v9.CheckDefSuccess(lines)
+
# item in a for loop is const
lines =<< trim END
var l: list<dict<any>> = [{n: 1}]