eolian_cxx: Add documentation field to property_def

Test Plan: run eolian_cxx suite

Reviewers: vitor.sousa, felipealmeida

Reviewed By: vitor.sousa

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7414
This commit is contained in:
Lauro Moura 2018-12-04 15:50:48 -02:00 committed by Christopher Michael
parent 0d4032ac27
commit 44db8aa9a0
2 changed files with 16 additions and 0 deletions

View File

@ -802,6 +802,7 @@ struct property_def
{
klass_name klass;
std::string name;
documentation_def documentation;
efl::eina::optional<function_def> getter;
efl::eina::optional<function_def> setter;
@ -810,6 +811,7 @@ struct property_def
{
return lhs.klass == rhs.klass
&& lhs.name == rhs.name
&& lhs.documentation == rhs.documentation
&& lhs.getter == rhs.getter
&& lhs.setter == rhs.setter;
}
@ -828,6 +830,14 @@ struct property_def
const Eolian_Class *eolian_klass = eolian_function_class_get(function);
klass = klass_name(eolian_klass, {attributes::qualifier_info::is_none, std::string()});
Eolian_Implement const* implement = ::eolian_function_implement_get(function);
if (!implement)
return;
Eolian_Function_Type type = ::eolian_function_type_get(function);
if (type == EOLIAN_PROP_GET || type == EOLIAN_PROP_SET || type == EOLIAN_PROPERTY)
documentation = eolian_implement_documentation_get(implement, EOLIAN_PROPERTY);
}
};

View File

@ -144,6 +144,12 @@ EFL_START_TEST(eolian_cxx_test_property_docs)
ck_assert_str_eq(doc.summary.c_str(), "Set documentation.");
ck_assert_str_eq(doc.description.c_str(), "");
ck_assert_str_eq(doc.since.c_str(), "1.17"); // Members inherit from parent *class*
auto property_iter = klass.properties.begin();
auto property = *property_iter;
doc = property.documentation;
ck_assert_str_eq(doc.summary.c_str(), "Property common documentation.");
ck_assert_str_eq(doc.since.c_str(), "1.18");
}
EFL_END_TEST