diff options
-rw-r--r-- | src/evalvars.c | 6 | ||||
-rw-r--r-- | src/testdir/test_vim9_class.vim | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
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, |