Update runtime files
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index a204735..258d0a1 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 8.2. Last change: 2022 Jan 21
+*eval.txt* For Vim version 8.2. Last change: 2022 Jan 24
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -44,7 +44,8 @@
1. Variables *variables*
1.1 Variable types ~
- *E712* *E896* *E897* *E899*
+ *E712* *E896* *E897* *E899* *E1098*
+ *E1107* *E1135* *E1138*
There are ten types of variables:
*Number* *Integer*
@@ -180,7 +181,7 @@
1.2 Function references ~
- *Funcref* *E695* *E718*
+ *Funcref* *E695* *E718* *E1086*
A Funcref variable is obtained with the |function()| function, the |funcref()|
function or created with the lambda expression |expr-lambda|. It can be used
in an expression in the place of a function name, before the parenthesis
@@ -835,7 +836,7 @@
==============================================================================
2. Expression syntax *expression-syntax*
-
+ *E1143*
Expression syntax summary, from least to most significant:
|expr1| expr2
@@ -916,6 +917,9 @@
All expressions within one level are parsed from left to right.
+Expression nesting is limited to 1000 levels deep (300 when build with MSVC)
+to avoid running out of stack and crashing. *E1169*
+
expr1 *expr1* *trinary* *falsy-operator* *??* *E109*
-----
@@ -1339,7 +1343,7 @@
always put spaces around the dot for String concatenation.
-expr9(expr1, ...) |Funcref| function call
+expr9(expr1, ...) |Funcref| function call *E1085*
When expr9 is a |Funcref| type variable, invoke the function it refers to.
@@ -1577,7 +1581,7 @@
variable (if your shell supports it).
-internal variable *expr-variable* *E1015*
+internal variable *expr-variable* *E1015* *E1089*
-----------------
variable internal variable
See below |internal-variables|.
@@ -2709,7 +2713,7 @@
command, use line breaks instead of |:bar|: >
:exe "func Foo()\necho 'foo'\nendfunc"
<
- *:delf* *:delfunction* *E131* *E933*
+ *:delf* *:delfunction* *E131* *E933* *E1084*
:delf[unction][!] {name}
Delete function {name}.
{name} can also be a |Dictionary| entry that is a
@@ -2726,8 +2730,11 @@
If "[expr]" is not given, the number 0 is returned.
When a function ends without an explicit ":return",
the number 0 is returned.
- Note that there is no check for unreachable lines,
- thus there is no warning if commands follow ":return".
+ In a :def function *E1095* is given if unreachable
+ code follows after the `:return`.
+ In legacy script there is no check for unreachable
+ lines, thus there is no warning if commands follow
+ `:return`.
If the ":return" is used after a |:try| but before the
matching |:finally| (if present), the commands
@@ -2746,7 +2753,7 @@
as "a:1", "a:2", etc. "a:0" is set to the number of extra arguments (which
can be 0). "a:000" is set to a |List| that contains these arguments. Note
that "a:1" is the same as "a:000[0]".
- *E742*
+ *E742* *E1090*
The a: scope and the variables in it cannot be changed, they are fixed.
However, if a composite type is used, such as |List| or |Dictionary| , you can
change their contents. Thus you can pass a |List| to a function and have the
@@ -3054,7 +3061,7 @@
from the {expr}. If {var-name} didn't exist yet, it
is created.
-:let {var-name}[{idx}] = {expr1} *E689*
+:let {var-name}[{idx}] = {expr1} *E689* *E1141*
Set a list item to the result of the expression
{expr1}. {var-name} must refer to a list and {idx}
must be a valid index in that list. For nested list
@@ -3161,7 +3168,7 @@
:let &g:{option-name} -= {expr1}
Like above, but only set the global value of an option
(if there is one). Works like |:setglobal|.
-
+ *E1093*
:let [{name1}, {name2}, ...] = {expr1} *:let-unpack* *E687* *E688*
{expr1} must evaluate to a |List|. The first item in
the list is assigned to {name1}, the second item to
@@ -3202,7 +3209,7 @@
|List| item.
*:let=<<* *:let-heredoc*
- *E990* *E991* *E172* *E221*
+ *E990* *E991* *E172* *E221* *E1145*
:let {var-name} =<< [trim] {endmarker}
text...
text...
@@ -3355,7 +3362,7 @@
:lockvar v
:let v = 'asdf' " fails!
:unlet v " works
-< *E741* *E940*
+< *E741* *E940* *E1118* *E1119* *E1120* *E1121* *E1122*
If you try to change a locked variable you get an
error message: "E741: Value is locked: {name}".
If you try to lock or unlock a built-in variable you
@@ -3498,7 +3505,7 @@
|Blob| does not affect the iteration.
:for [{var1}, {var2}, ...] in {listlist}
-:endfo[r]
+:endfo[r] *E1140*
Like ":for" above, but each item in {listlist} must be
a list, of which each item is assigned to {var1},
{var2}, etc. Example: >
@@ -3601,7 +3608,7 @@
|:break|, |:finish|, or |:return|, or by an error or
interrupt or exception (see |:throw|).
- *:th* *:throw* *E608*
+ *:th* *:throw* *E608* *E1129*
:th[row] {expr1} The {expr1} is evaluated and thrown as an exception.
If the ":throw" is used after a |:try| but before the
first corresponding |:catch|, commands are skipped