summaryrefslogtreecommitdiffstats
path: root/runtime/doc/vim9.txt
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-03-30 10:51:39 +0100
committerBram Moolenaar <Bram@vim.org>2022-03-30 10:51:39 +0100
commit46eea444d992c2ae985cabb775a5d283f8e16df3 (patch)
tree60c149cee920e02a181c98dd0609b7598f535218 /runtime/doc/vim9.txt
parent9247a221ce7800c0ae1b3487112d314b8ab79f53 (diff)
Update runtime files
Diffstat (limited to 'runtime/doc/vim9.txt')
-rw-r--r--runtime/doc/vim9.txt22
1 files changed, 16 insertions, 6 deletions
diff --git a/runtime/doc/vim9.txt b/runtime/doc/vim9.txt
index f494880e28..7af10024af 100644
--- a/runtime/doc/vim9.txt
+++ b/runtime/doc/vim9.txt
@@ -1,4 +1,4 @@
-*vim9.txt* For Vim version 8.2. Last change: 2022 Mar 18
+*vim9.txt* For Vim version 8.2. Last change: 2022 Mar 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -184,8 +184,8 @@ For now you will need to pass the dictionary explicitly: >
def DictFunc(d: dict<any>, arg: string)
echo d[arg]
enddef
- var d = {item: 'value', func: DictFunc}
- d.func(d, 'item')
+ var ad = {item: 'value', func: DictFunc}
+ ad.func(d, 'item')
You can call a legacy dict function though: >
func Legacy() dict
@@ -376,13 +376,23 @@ And with autocommands: >
}
Although using a :def function probably works better.
+
*E1022* *E1103* *E1130* *E1131* *E1133*
*E1134* *E1235*
Declaring a variable with a type but without an initializer will initialize to
false (for bool), empty (for string, list, dict, etc.) or zero (for number,
any, etc.). This matters especially when using the "any" type, the value will
-default to the number zero.
- *E1016* *E1052* *E1066*
+default to the number zero. For example, when declaring a list, items can be
+added: >
+ var myList: list<number>
+ myList->add(7)
+
+Initializing a variable to a null value, e.g. `null_list`, differs from not
+initializing the variable. This throws an error: >
+ var myList = null_list
+ myList->add(7) # E1130: Cannot add to null list
+
+< *E1016* *E1052* *E1066*
In Vim9 script `:let` cannot be used. An existing variable is assigned to
without any command. The same for global, window, tab, buffer and Vim
variables, because they are not really declared. Those can also be deleted
@@ -1243,7 +1253,7 @@ Closures defined in a loop will share the same context. For example: >
A closure must be compiled in the context that it is defined in, so that
variables in that context can be found. This mostly happens correctly, except
when a function is marked for debugging with `breakadd` after it was compiled.
-Make sure the define the breakpoint before compiling the outerh function.
+Make sure to define the breakpoint before compiling the outer function.
The "inloop" variable will exist only once, all closures put in the list refer
to the same instance, which in the end will have the value 4. This is