diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2023-12-14 20:03:03 +0100 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2023-12-14 20:03:03 +0100 |
commit | 2a71b54d35361f3f0c24db88c672b426f8acc7b7 (patch) | |
tree | 824d224a7e013bfa77b57ff24a9becb00bb2ae45 | |
parent | d2e1c83962d4b392d1876d341c739d204553d01b (diff) |
patch 9.0.2162: Vim9: type documentation out-datedv9.0.2162
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>
-rw-r--r-- | runtime/doc/builtin.txt | 1 | ||||
-rw-r--r-- | runtime/doc/eval.txt | 2 | ||||
-rw-r--r-- | runtime/doc/tags | 14 | ||||
-rw-r--r-- | runtime/doc/vim9class.txt | 36 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim.h | 2 |
6 files changed, 49 insertions, 8 deletions
diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt index c9b9938dd9..657fe8dbd6 100644 --- a/runtime/doc/builtin.txt +++ b/runtime/doc/builtin.txt @@ -10181,6 +10181,7 @@ type({expr}) The result is a Number representing the type of {expr}. 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("") diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index 5d61035f55..2a4bd4c7d5 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -2558,6 +2558,8 @@ v:t_blob Value of |Blob| type. Read-only. See: |type()| 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| diff --git a/runtime/doc/tags b/runtime/doc/tags index 9c641f52d3..fdda06b7e1 100644 --- 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* diff --git a/runtime/doc/vim9class.txt b/runtime/doc/vim9class.txt index f7ce914628..c0fc7cb037 100644 --- 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> + var s: ListOfStrings = ['a', 'b'] + + 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. - :type ListOfStrings = list<string> + *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. -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. +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* diff --git a/src/version.c b/src/version.c index a6a54f2270..6813d54110 100644 --- a/src/version.c +++ b/src/version.c @@ -705,6 +705,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2162, +/**/ 2161, /**/ 2160, @@ -2181,7 +2181,7 @@ typedef int sock_T; #define VAR_TYPE_INSTR 11 #define VAR_TYPE_CLASS 12 #define VAR_TYPE_OBJECT 13 -#define VAR_TYPE_TYPEALIAS 15 +#define VAR_TYPE_TYPEALIAS 14 #define DICT_MAXNEST 100 // maximum nesting of lists and dicts |