patch 9.0.2076: Vim9: No support for type aliases
Problem: Vim9: No support for type aliases
Solution: Implement :type command
A type definition is giving a name to a type specification. This also known
type alias.
:type ListOfStrings = list<string>
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.
closes: #13407
Signed-off-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
diff --git a/src/vim9execute.c b/src/vim9execute.c
index a6bf471..7901f6e 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -3807,6 +3807,13 @@
case ISN_STORE:
--ectx->ec_stack.ga_len;
tv = STACK_TV_VAR(iptr->isn_arg.number);
+ if (STACK_TV_BOT(0)->v_type == VAR_TYPEALIAS)
+ {
+ semsg(_(e_using_typealias_as_variable),
+ STACK_TV_BOT(0)->vval.v_typealias->ta_name);
+ clear_tv(STACK_TV_BOT(0));
+ goto on_error;
+ }
clear_tv(tv);
*tv = *STACK_TV_BOT(0);
break;
@@ -7517,6 +7524,7 @@
case VAR_INSTR:
case VAR_CLASS:
case VAR_OBJECT:
+ case VAR_TYPEALIAS:
break;
}
return FALSE;