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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user