csharp: Respect beta for type aliases

Summary: Also add beta info to `alias_def` in eolian_cxx.

Reviewers: brunobelo, felipealmeida, woohyun, segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10315
This commit is contained in:
Lauro Moura 2019-10-09 16:39:38 +02:00 committed by Xavi Artigas
parent 9dcfe4bbbc
commit fb7c35269c
3 changed files with 9 additions and 2 deletions

View File

@ -18,7 +18,7 @@ struct alias_definition_generator
template<typename OutputIterator, typename Context>
bool generate(OutputIterator sink, attributes::alias_def const& alias, Context const& context) const
{
if (blacklist::is_alias_blacklisted(alias))
if (blacklist::is_alias_blacklisted(alias, context))
{
EINA_CXX_DOM_LOG_DBG(eolian_mono::domain) << "Alias " << name_helpers::alias_full_eolian_name(alias) << "is blacklisted. Skipping.";
return true;

View File

@ -119,8 +119,13 @@ inline bool is_struct_blacklisted(attributes::regular_type_def const& struct_)
return is_struct_blacklisted(name_helpers::type_full_eolian_name(struct_));
}
inline bool is_alias_blacklisted(attributes::alias_def const& alias)
template <typename Context>
inline bool is_alias_blacklisted(attributes::alias_def const& alias, Context const& context)
{
auto options = efl::eolian::grammar::context_find_tag<options_context>(context);
if (alias.is_beta && !options.want_beta)
return true;
return name_helpers::alias_full_eolian_name(alias) == "Eina.Error";
}

View File

@ -554,8 +554,10 @@ struct alias_def
bool is_undefined;
type_def base_type {};
documentation_def documentation;
bool is_beta;
alias_def(Eolian_Typedecl const* alias_obj, Eolian_Unit const* unit)
: is_beta(::eolian_typedecl_is_beta(alias_obj))
{
cxx_name = eolian_name = ::eolian_typedecl_short_name_get(alias_obj);