eolian: force specification of inner type for all complex types

This commit is contained in:
Daniel Kolesa 2015-05-14 11:27:00 +01:00
parent 8a101cd8f0
commit 8c774a1b90
2 changed files with 9 additions and 12 deletions

View File

@ -175,7 +175,7 @@ interface Efl.Model.Base ()
unsigned count; /*@ Range size. If count and start are 0 slice is ignored.*/
}
values {
accessor<list*>* children_accessor;
accessor<list<Eo.Base*>*>* children_accessor;
}
}
@property children_count {

View File

@ -774,23 +774,20 @@ parse_type_void(Eo_Lexer *ls)
eo_lexer_get(ls);
if (tpid >= KW_accessor)
{
int bline = ls->line_number, bcol = ls->column;
def->type = EOLIAN_TYPE_COMPLEX;
if (ls->t.token == '<')
check_next(ls, '<');
def->subtypes = eina_list_append(def->subtypes,
parse_type(ls));
pop_type(ls);
if (tpid == KW_hash)
{
int bline = ls->line_number, bcol = ls->column;
eo_lexer_get(ls);
check_next(ls, ',');
def->subtypes = eina_list_append(def->subtypes,
parse_type(ls));
pop_type(ls);
if (tpid == KW_hash)
{
check_next(ls, ',');
def->subtypes = eina_list_append(def->subtypes,
parse_type(ls));
pop_type(ls);
}
check_match(ls, '>', '<', bline, bcol);
}
check_match(ls, '>', '<', bline, bcol);
}
}
else