if (eolian_type_type_get(tp) == EOLIAN_TYPE_ALIAS)
{
const Eolian_Type *btp = eolian_type_base_type_get(tp);
- if (eolian_type_type_get(btp) == EOLIAN_TYPE_REGULAR)
- if (!strcmp(eolian_type_full_name_get(btp), "__undefined_type"))
- continue;
+ if (eolian_type_type_get(btp) == EOLIAN_TYPE_UNDEFINED)
+ continue;
}
Eina_Strbuf *tbuf = _type_generate(tp, full, use_legacy);
STRUCT_OPAQUE = 7,
ENUM = 8,
ALIAS = 9,
- CLASS = 10
+ CLASS = 10,
+ UNDEFINED = 11
}
ffi.metatype("Eolian_Struct_Type_Field", {
EOLIAN_TYPE_STRUCT_OPAQUE,
EOLIAN_TYPE_ENUM,
EOLIAN_TYPE_ALIAS,
- EOLIAN_TYPE_CLASS
+ EOLIAN_TYPE_CLASS,
+ EOLIAN_TYPE_UNDEFINED
} Eolian_Type_Type;
typedef enum
switch (tp->type)
{
case EOLIAN_TYPE_VOID:
+ case EOLIAN_TYPE_UNDEFINED:
case EOLIAN_TYPE_COMPLEX:
return EINA_TRUE;
case EOLIAN_TYPE_REGULAR:
int id = eo_lexer_keyword_str_to_id(tp->full_name);
if (id)
return eo_lexer_is_type_keyword(id);
- if (!strcmp(tp->full_name, "__undefined_type"))
- return EINA_TRUE;
/* user defined */
tpp = eolian_type_base_type_get(tp);
if (!tpp)
\
KW(accessor), KW(array), KW(iterator), KW(hash), KW(list), KW(generic_value), \
\
- KW(__builtin_event_cb), \
+ KW(__builtin_event_cb), KW(__undefined_type), \
\
KW(true), KW(false), KW(null)
def->type = EOLIAN_TYPE_VOID;
eo_lexer_get(ls);
}
+ else if (ls->t.kw == KW___undefined_type)
+ {
+ def->type = EOLIAN_TYPE_UNDEFINED;
+ eo_lexer_get(ls);
+ }
else
{
int tpid = ls->t.kw;