Mercurial > vim
changeset 33931:050160b94f02 v9.0.2162
patch 9.0.2162: Vim9: type documentation out-dated
Commit: https://github.com/vim/vim/commit/2a71b54d35361f3f0c24db88c672b426f8acc7b7
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Thu Dec 14 20:03:03 2023 +0100
patch 9.0.2162: Vim9: type documentation out-dated
Problem: Vim9: type documentation out-dated
Solution: Update documentation, fix typo in type alias
definition
closes: #13684
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 14 Dec 2023 20:15:06 +0100 |
parents | 09139cc5ebcd |
children | 4d9213d8ba23 |
files | runtime/doc/builtin.txt runtime/doc/eval.txt runtime/doc/tags runtime/doc/vim9class.txt src/version.c src/vim.h |
diffstat | 6 files changed, 49 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -10181,6 +10181,7 @@ type({expr}) The result is a Number repr Blob: 10 |v:t_blob| Class: 12 |v:t_class| Object: 13 |v:t_object| + Typealias: 14 |v:t_typealias| For backward compatibility, this method can be used: > :if type(myvar) == type(0) :if type(myvar) == type("")
--- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -2558,6 +2558,8 @@ v:t_blob Value of |Blob| type. Read-onl v:t_class Value of |class| type. Read-only. See: |type()| *v:t_object* *t_object-variable* v:t_object Value of |object| type. Read-only. See: |type()| + *v:t_typealias* *t_typealias-variable* +v:t_typealias Value of |typealias| type. Read-only. See: |type()| *v:termresponse* *termresponse-variable* v:termresponse The escape sequence returned by the terminal for the |t_RV|
--- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -4491,7 +4491,19 @@ E139 message.txt /*E139* E1390 vim9class.txt /*E1390* E1391 eval.txt /*E1391* E1392 eval.txt /*E1392* +E1393 vim9class.txt /*E1393* +E1394 vim9class.txt /*E1394* +E1395 vim9class.txt /*E1395* +E1396 vim9class.txt /*E1396* +E1397 vim9class.txt /*E1397* +E1398 vim9class.txt /*E1398* +E1399 vim9class.txt /*E1399* E140 message.txt /*E140* +E1400 vim9class.txt /*E1400* +E1401 vim9class.txt /*E1401* +E1402 vim9class.txt /*E1402* +E1403 vim9class.txt /*E1403* +E1407 vim9class.txt /*E1407* E141 message.txt /*E141* E142 message.txt /*E142* E143 autocmd.txt /*E143* @@ -10285,6 +10297,7 @@ t_ti term.txt /*t_ti* t_tp version4.txt /*t_tp* t_ts term.txt /*t_ts* t_ts_old version4.txt /*t_ts_old* +t_typealias-variable eval.txt /*t_typealias-variable* t_u7 term.txt /*t_u7* t_ue term.txt /*t_ue* t_undo version4.txt /*t_undo* @@ -10785,6 +10798,7 @@ v:t_none eval.txt /*v:t_none* v:t_number eval.txt /*v:t_number* v:t_object eval.txt /*v:t_object* v:t_string eval.txt /*v:t_string* +v:t_typealias eval.txt /*v:t_typealias* v:termblinkresp eval.txt /*v:termblinkresp* v:termrbgresp eval.txt /*v:termrbgresp* v:termresponse eval.txt /*v:termresponse*
--- a/runtime/doc/vim9class.txt +++ b/runtime/doc/vim9class.txt @@ -752,16 +752,38 @@ constructor methods. 7. Type definition *Vim9-type* *:type* -A type definition is giving a name to a type specification. This also known -type alias. For Example: > + *E1393* *E1395* *E1396* *E1397* *E1398* +A type definition is giving a name to a type specification. This is also +known as a "type alias". The type alias can be used wherever a built-in type +can be used. Example: > - :type ListOfStrings = list<string> + type ListOfStrings = list<string> + var s: ListOfStrings = ['a', 'b'] -The type alias can be used wherever a built-in type can be used. The type -alias name must start with an upper case character. A type alias can be -created only at the script level and not inside a function. A type alias can -be exported and used across scripts. + def ProcessStr(str: ListOfStrings): ListOfStrings + return str + enddef + echo ProcessStr(s) +< + *E1394* +A type alias name must start with an upper case character. Only existing +types can be aliased. + *E1399* +A type alias can be created only at the script level and not inside a +function. A type alias can be exported and used across scripts. + + *E1400* *E1401* *E1402* *E1403* *E1407* +A type alias cannot be used as an expression. A type alias cannot be used in +the left-hand-side of an assignment. + +For a type alias name, the |typename()| function returns the type that is +aliased: > + + type ListOfStudents = list<dict<any>> + echo typename(ListOfStudents) + typealias<list<dict<any>>> +< ============================================================================== 8. Enum *Vim9-enum* *:enum* *:endenum*