eolian: enforce that list<> can only be used with @beta API.

Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D11050
This commit is contained in:
Cedric BAIL 2020-01-02 15:41:36 -08:00 committed by Xavi Artigas
parent fdcc0053c6
commit 5e93a878b7
2 changed files with 7 additions and 2 deletions

View File

@ -336,7 +336,12 @@ typedef enum
EOLIAN_TYPE_BUILTIN_ARRAY,
EOLIAN_TYPE_BUILTIN_FUTURE,
EOLIAN_TYPE_BUILTIN_ITERATOR,
#ifdef EFL_BETA_API_SUPPORT
EOLIAN_TYPE_BUILTIN_LIST,
#else
// Placeholder when using release API only. Done to prevent offseting the value below.
EOLIAN_TYPE_BUILTIN_BETA_PLACEHOLDER1,
#endif
EOLIAN_TYPE_BUILTIN_ANY_VALUE,
EOLIAN_TYPE_BUILTIN_ANY_VALUE_REF,

View File

@ -400,9 +400,9 @@ _validate_type(Validate_State *vals, Eolian_Type *tp, Eina_Bool by_ref,
int kwid = eo_lexer_keyword_str_to_id(tp->base.name);
if (kwid > KW_void)
tp->ownable = EINA_TRUE;
if (kwid == KW_hash && vals->stable)
if ((kwid == KW_hash || kwid == KW_list) && vals->stable)
{
_eo_parser_log(&tp->base, "hashes not allowed in stable context");
_eo_parser_log(&tp->base, "hashes and lists not allowed in stable context");
return EINA_FALSE;
}
Eolian_Type *itp = tp->base_type;