summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/evalvars.c6
-rw-r--r--src/testdir/test_vim9_class.vim4
-rw-r--r--src/version.c2
3 files changed, 11 insertions, 1 deletions
diff --git a/src/evalvars.c b/src/evalvars.c
index e473e4876..8061a5096 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -3122,8 +3122,12 @@ eval_variable_import(
return FAIL;
if (rettv->v_type == VAR_ANY && *s == '.')
{
+ char_u *ns = s + 1;
+ s = ns;
+ while (ASCII_ISALNUM(*s) || *s == '_')
+ ++s;
int sid = rettv->vval.v_number;
- return eval_variable(s + 1, 0, sid, rettv, NULL, 0);
+ return eval_variable(ns, (int)(s - ns), sid, rettv, NULL, 0);
}
return OK;
}
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim
index cf7a6c1ce..c6c583a54 100644
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -992,6 +992,10 @@ def Test_class_import()
a = animal.Animal.new('fish', 'Eric')
assert_equal('fish', a.kind)
assert_equal('Eric', a.name)
+
+ var b: animal.Animal = animal.Animal.new('cat', 'Garfield')
+ assert_equal('cat', b.kind)
+ assert_equal('Garfield', b.name)
END
v9.CheckScriptSuccess(lines)
enddef
diff --git a/src/version.c b/src/version.c
index a0fc017a0..f702b36a3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1186,
+/**/
1185,
/**/
1184,