eolian: allow future<void> for value-less futures

This commit is contained in:
Daniel Kolesa 2017-05-04 15:27:17 +02:00
parent cae34033ef
commit 802d544265
1 changed files with 5 additions and 2 deletions

View File

@ -882,7 +882,10 @@ parse_type_void(Eo_Lexer *ls, Eina_Bool allow_ref, Eina_Bool allow_sarray)
int bline = ls->line_number, bcol = ls->column; int bline = ls->line_number, bcol = ls->column;
def->type = EOLIAN_TYPE_COMPLEX; def->type = EOLIAN_TYPE_COMPLEX;
check_next(ls, '<'); check_next(ls, '<');
def->base_type = parse_type(ls, EINA_FALSE, EINA_FALSE); if (tpid == KW_future)
def->base_type = parse_type_void(ls, EINA_FALSE, EINA_FALSE);
else
def->base_type = parse_type(ls, EINA_FALSE, EINA_FALSE);
pop_type(ls); pop_type(ls);
if (tpid == KW_hash) if (tpid == KW_hash)
{ {
@ -892,7 +895,7 @@ parse_type_void(Eo_Lexer *ls, Eina_Bool allow_ref, Eina_Bool allow_sarray)
} }
else if((tpid == KW_future) && test_next(ls, ',')) else if((tpid == KW_future) && test_next(ls, ','))
{ {
def->base_type->next_type = parse_type(ls, EINA_FALSE, EINA_FALSE); def->base_type->next_type = parse_type_void(ls, EINA_FALSE, EINA_FALSE);
pop_type(ls); pop_type(ls);
} }
check_match(ls, '>', '<', bline, bcol); check_match(ls, '>', '<', bline, bcol);