1
0
forked from aniani/vim

patch 9.0.1186: imported class does not work when used twice in a line

Problem:    Imported class does not work when used twice in a line.
Solution:   Fix the type parsing.
This commit is contained in:
Bram Moolenaar
2023-01-12 20:04:51 +00:00
parent a86655af84
commit 4059400993
3 changed files with 11 additions and 1 deletions

View File

@@ -3122,8 +3122,12 @@ eval_variable_import(
return FAIL; return FAIL;
if (rettv->v_type == VAR_ANY && *s == '.') 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; 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; return OK;
} }

View File

@@ -992,6 +992,10 @@ def Test_class_import()
a = animal.Animal.new('fish', 'Eric') a = animal.Animal.new('fish', 'Eric')
assert_equal('fish', a.kind) assert_equal('fish', a.kind)
assert_equal('Eric', a.name) 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 END
v9.CheckScriptSuccess(lines) v9.CheckScriptSuccess(lines)
enddef enddef

View File

@@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1186,
/**/ /**/
1185, 1185,
/**/ /**/