E1432 vim9.txt /*E1432*
E1433 vim9.txt /*E1433*
E1434 vim9.txt /*E1434*
+E1435 vim9class.txt /*E1435*
+E1436 vim9class.txt /*E1436*
E144 various.txt /*E144*
E145 starting.txt /*E145*
E146 change.txt /*E146*
-*vim9class.txt* For Vim version 9.1. Last change: 2025 Apr 21
+*vim9class.txt* For Vim version 9.1. Last change: 2025 Jul 24
VIM REFERENCE MANUAL by Bram Moolenaar
An interface can extend another interface using "extends". The sub-interface
inherits all the instance variables and methods from the super interface.
+An interface cannot be defined inside a function. *E1436*
+
==============================================================================
6. More class details *Vim9-class* *Class* *class*
enum instances cannot be created this way.
An enum can only be defined in a |Vim9| script file. *E1414*
-An enum cannot be defined inside a function.
+An enum cannot be defined inside a function. *E1435*
*E1415*
An enum name must start with an uppercase letter. The name of an enum value
INIT(= N_("E1433: Overriding concrete method \"%s\" in class \"%s\" with a generic method"));
EXTERN char e_generic_method_str_type_arguments_mismatch_in_class_str[]
INIT(= N_("E1434: Mismatched number of type variables for generic method \"%s\" in class \"%s\""));
+EXTERN char e_enum_can_only_be_used_in_script[]
+ INIT(= N_("E1435: Enum can only be used in a script"));
+EXTERN char e_interface_can_only_be_used_in_script[]
+ INIT(= N_("E1436: Interface can only be used in a script"));
#endif
-// E1435 - E1499 unused (reserved for Vim9 class support)
+// E1437 - E1499 unused (reserved for Vim9 class support)
EXTERN char e_cannot_mix_positional_and_non_positional_str[]
INIT(= N_("E1500: Cannot mix positional and non-positional arguments: %s"));
EXTERN char e_fmt_arg_nr_unused_str[]
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-07-21 21:33+0200\n"
+"POT-Creation-Date: 2025-07-24 19:13+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"class \"%s\""
msgstr ""
+msgid "E1435: Enum can only be used in a script"
+msgstr ""
+
+msgid "E1436: Interface can only be used in a script"
+msgstr ""
+
#, c-format
msgid "E1500: Cannot mix positional and non-positional arguments: %s"
msgstr ""
call v9.CheckSourceSuccess(lines)
endfunc
+" Test for defining an interface in a function
+def Test_interface_defined_in_function()
+ var lines =<< trim END
+ vim9script
+ def Fn()
+ var x = 1
+ interface Foo
+ endinterface
+ enddef
+ defcompile
+ END
+ v9.CheckScriptFailure(lines, 'E1436: Interface can only be used in a script', 2)
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
call v9.CheckSourceSuccess(lines)
endfunc
+" Test for defining an enum in a function
+def Test_enum_defined_in_function()
+ var lines =<< trim END
+ vim9script
+ def Fn()
+ var x = 1
+ enum Foo
+ Red,
+ endenum
+ enddef
+ defcompile
+ END
+ v9.CheckScriptFailure(lines, 'E1435: Enum can only be used in a script', 2)
+enddef
+
" vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1586,
/**/
1585,
/**/
emsg(_(e_class_can_only_be_used_in_script));
return FAIL;
+ case CMD_enum:
+ emsg(_(e_enum_can_only_be_used_in_script));
+ return FAIL;
+
+ case CMD_interface:
+ emsg(_(e_interface_can_only_be_used_in_script));
+ return FAIL;
+
case CMD_type:
emsg(_(e_type_can_only_be_used_in_script));
return FAIL;