diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 884302ebe5..669f1969cf 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -1143,12 +1143,14 @@ parse_param(Eo_Lexer *ls, Eina_List **params, Eina_Bool allow_inout, break; case KW_at_optional: CASE_LOCK(ls, optional, "optional qualifier"); + par->optional = EINA_TRUE; eo_lexer_get(ls); break; case KW_at_nullable: if (has_nonull) eo_lexer_syntax_error(ls, "both nullable and nonull specified"); CASE_LOCK(ls, nullable, "c_only qualifier"); + par->nullable = EINA_TRUE; eo_lexer_get(ls); break; default: diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index b12e05a92a..309f614ca3 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -133,7 +133,9 @@ struct _Eolian_Function_Parameter Eolian_Parameter_Dir param_dir; Eina_Bool is_const_on_get :1; /* True if const in this the get property */ Eina_Bool is_const_on_set :1; /* True if const in this the set property */ - Eina_Bool nonull :1; /* True if this argument cannot be NULL */ + Eina_Bool nonull :1; /* True if this argument cannot be NULL - deprecated */ + Eina_Bool nullable :1; /* True if this argument is nullable */ + Eina_Bool optional :1; /* True if this argument is optional */ }; struct _Eolian_Type