patch 9.0.1185: using class from imported script not tested
Problem: Using class from imported script not tested.
Solution: Add tests. Implement what is missing.
diff --git a/src/vim9class.c b/src/vim9class.c
index a60e70d..a1466be 100644
--- a/src/vim9class.c
+++ b/src/vim9class.c
@@ -244,9 +244,13 @@
}
char_u *name_start = arg;
+ // "export class" gets used when creating the class, don't use "is_export"
+ // for the items inside the class.
+ int class_export = is_export;
+ is_export = FALSE;
+
// TODO:
// generics: <Tkey, Tentry>
- // handle "is_export" if it is set
// Name for "extends BaseClass"
char_u *extends = NULL;
@@ -558,7 +562,7 @@
{
typval_T tv;
tv.v_type = VAR_UNKNOWN;
- if (eval_variable(extends, 0, 0, &tv, NULL, EVAL_VAR_IMPORT) == FAIL)
+ if (eval_variable_import(extends, &tv) == FAIL)
{
semsg(_(e_class_name_not_found_str), extends);
success = FALSE;
@@ -594,7 +598,7 @@
char_u *impl = ((char_u **)ga_impl.ga_data)[i];
typval_T tv;
tv.v_type = VAR_UNKNOWN;
- if (eval_variable(impl, 0, 0, &tv, NULL, EVAL_VAR_IMPORT) == FAIL)
+ if (eval_variable_import(impl, &tv) == FAIL)
{
semsg(_(e_interface_name_not_found_str), impl);
success = FALSE;
@@ -930,6 +934,7 @@
typval_T tv;
tv.v_type = VAR_CLASS;
tv.vval.v_class = cl;
+ is_export = class_export;
set_var_const(cl->class_name, current_sctx.sc_sid,
NULL, &tv, FALSE, ASSIGN_DECL, 0);
return;