eolian: disallow missing docs for stable API where necessary

The things that require docs include classes, variables, typedecls,
events and methods/properties. Implements, params, returns, parts
and struct/enum fields don't require them.

Empty/whitespace only string does not count as documentation.
This commit is contained in:
Daniel Kolesa 2019-09-30 17:01:31 +02:00
parent 09859cacf2
commit 2946cb3c32
71 changed files with 746 additions and 108 deletions

View File

@ -1,5 +1,6 @@
abstract Efl.Loop_Model extends Efl.Loop_Consumer implements Efl.Model abstract Efl.Loop_Model extends Efl.Loop_Consumer implements Efl.Model
{ {
[[TBD]]
data: null; data: null;
methods { methods {
volatile_make { volatile_make {

View File

@ -41,12 +41,23 @@ _validate(Eolian_Object *obj)
eolian_state_log_obj((_base)->unit->state, (_base), __VA_ARGS__) eolian_state_log_obj((_base)->unit->state, (_base), __VA_ARGS__)
static Eina_Bool static Eina_Bool
_validate_docstr(Eina_Stringshare *str, const Eolian_Object *info, Eina_List **rdbg) _validate_docstr(Eina_Stringshare *str, const Eolian_Object *info, Eina_List **rdbg, Eina_Bool sum)
{ {
if (!str || !str[0]) return EINA_TRUE; Eina_List *pl = NULL;
if (str && str[0])
pl = eolian_documentation_string_split(str);
if (!pl)
{
if (sum)
{
_eo_parser_log(info, "empty documentation");
return EINA_FALSE;
}
/* description can be empty, summary-only line */
return EINA_TRUE;
}
Eina_Bool ret = EINA_TRUE; Eina_Bool ret = EINA_TRUE;
Eina_List *pl = eolian_documentation_string_split(str);
char *par; char *par;
EINA_LIST_FREE(pl, par) EINA_LIST_FREE(pl, par)
{ {
@ -88,16 +99,23 @@ _validate_docstr(Eina_Stringshare *str, const Eolian_Object *info, Eina_List **r
} }
static Eina_Bool static Eina_Bool
_validate_doc(Eolian_Documentation *doc) _validate_doc(Validate_State *vals, Eolian_Documentation *doc,
const Eolian_Object *obj)
{ {
if (!doc) if (!doc)
{
if (!obj) return EINA_TRUE;
if (!vals->stable) return EINA_TRUE;
_eo_parser_log(obj, "missing documentation");
return EINA_FALSE;
}
return EINA_TRUE; return EINA_TRUE;
Eina_List *rdbg = doc->ref_dbg; Eina_List *rdbg = doc->ref_dbg;
if (!_validate_docstr(doc->summary, &doc->base, &rdbg)) if (!_validate_docstr(doc->summary, &doc->base, &rdbg, EINA_TRUE))
return EINA_FALSE; return EINA_FALSE;
if (!_validate_docstr(doc->description, &doc->base, &rdbg)) if (!_validate_docstr(doc->description, &doc->base, &rdbg, EINA_FALSE))
return EINA_FALSE; return EINA_FALSE;
return _validate(&doc->base); return _validate(&doc->base);
@ -132,7 +150,7 @@ _sf_map_cb(const Eina_Hash *hash EINA_UNUSED, const void *key EINA_UNUSED,
if (!sc->succ) if (!sc->succ)
return EINA_FALSE; return EINA_FALSE;
sc->succ = _validate_doc(sf->doc); sc->succ = _validate_doc(sc->vals, sf->doc, NULL);
return sc->succ; return sc->succ;
} }
@ -149,7 +167,7 @@ _ef_map_cb(const Eina_Hash *hash EINA_UNUSED, const void *key EINA_UNUSED,
if (!sc->succ) if (!sc->succ)
return EINA_FALSE; return EINA_FALSE;
sc->succ = _validate_doc(ef->doc); sc->succ = _validate_doc(sc->vals, ef->doc, NULL);
return sc->succ; return sc->succ;
} }
@ -160,12 +178,12 @@ _validate_typedecl(Validate_State *vals, Eolian_Typedecl *tp)
if (tp->base.validated) if (tp->base.validated)
return EINA_TRUE; return EINA_TRUE;
if (!_validate_doc(tp->doc))
return EINA_FALSE;
/* for the time being assume all typedecls are beta unless overridden */ /* for the time being assume all typedecls are beta unless overridden */
Eina_Bool was_stable = _set_stable(vals, !tp->base.is_beta); Eina_Bool was_stable = _set_stable(vals, !tp->base.is_beta);
if (!_validate_doc(vals, tp->doc, &tp->base))
return EINA_FALSE;
switch (tp->type) switch (tp->type)
{ {
case EOLIAN_TYPEDECL_ALIAS: case EOLIAN_TYPEDECL_ALIAS:
@ -471,7 +489,7 @@ _validate_param(Validate_State *vals, Eolian_Function_Parameter *param)
if (param->value && !_validate_expr(param->value, param->type, 0, param->by_ref)) if (param->value && !_validate_expr(param->value, param->type, 0, param->by_ref))
return EINA_FALSE; return EINA_FALSE;
if (!_validate_doc(param->doc)) if (!_validate_doc(vals, param->doc, NULL))
return EINA_FALSE; return EINA_FALSE;
return _validate(&param->base); return _validate(&param->base);
@ -539,9 +557,9 @@ _validate_function(Validate_State *vals, Eolian_Function *func, Eina_Hash *nhash
#undef EOLIAN_PARAMS_VALIDATE #undef EOLIAN_PARAMS_VALIDATE
if (!_validate_doc(func->get_return_doc)) if (!_validate_doc(vals, func->get_return_doc, NULL))
return _reset_stable(vals, was_stable, EINA_FALSE); return _reset_stable(vals, was_stable, EINA_FALSE);
if (!_validate_doc(func->set_return_doc)) if (!_validate_doc(vals, func->set_return_doc, NULL))
return _reset_stable(vals, was_stable, EINA_FALSE); return _reset_stable(vals, was_stable, EINA_FALSE);
/* just for now, when dups become errors there will be no need to check */ /* just for now, when dups become errors there will be no need to check */
@ -574,7 +592,7 @@ _validate_part(Validate_State *vals, Eolian_Part *part, Eina_Hash *phash)
Eina_Bool was_stable = _set_stable(vals, !part->base.is_beta && vals->stable); Eina_Bool was_stable = _set_stable(vals, !part->base.is_beta && vals->stable);
if (!_validate_doc(part->doc)) if (!_validate_doc(vals, part->doc, NULL))
return _reset_stable(vals, was_stable, EINA_FALSE); return _reset_stable(vals, was_stable, EINA_FALSE);
/* switch the class name for class */ /* switch the class name for class */
@ -693,7 +711,7 @@ _validate_event(Validate_State *vals, Eolian_Event *event, Eina_Hash *nhash)
} }
} }
if (!_validate_doc(event->doc)) if (!_validate_doc(vals, event->doc, &event->base))
return _reset_stable(vals, was_stable, EINA_FALSE); return _reset_stable(vals, was_stable, EINA_FALSE);
eina_hash_set(nhash, &event->base.name, &event->base); eina_hash_set(nhash, &event->base.name, &event->base);
@ -1346,16 +1364,17 @@ _db_fill_inherits(Validate_State *vals, Eolian_Class *cl, Eina_Hash *fhash,
} }
static Eina_Bool static Eina_Bool
_validate_implement(Eolian_Implement *impl) _validate_implement(Validate_State *vals, Eolian_Implement *impl)
{ {
if (impl->base.validated) if (impl->base.validated)
return EINA_TRUE; return EINA_TRUE;
if (!_validate_doc(impl->common_doc)) if (!_validate_doc(vals, impl->common_doc, (impl->implklass == impl->klass)
? &impl->foo_id->base : NULL))
return EINA_FALSE; return EINA_FALSE;
if (!_validate_doc(impl->get_doc)) if (!_validate_doc(vals, impl->get_doc, NULL))
return EINA_FALSE; return EINA_FALSE;
if (!_validate_doc(impl->set_doc)) if (!_validate_doc(vals, impl->set_doc, NULL))
return EINA_FALSE; return EINA_FALSE;
return _validate(&impl->base); return _validate(&impl->base);
@ -1503,7 +1522,7 @@ _validate_class(Validate_State *vals, Eolian_Class *cl,
return EINA_FALSE; return EINA_FALSE;
EINA_LIST_FOREACH(cl->implements, l, impl) EINA_LIST_FOREACH(cl->implements, l, impl)
if (!_validate_implement(impl)) if (!_validate_implement(vals, impl))
return EINA_FALSE; return EINA_FALSE;
/* all the checks that need to be done every time are performed now */ /* all the checks that need to be done every time are performed now */
@ -1514,7 +1533,7 @@ _validate_class(Validate_State *vals, Eolian_Class *cl,
return EINA_TRUE; return EINA_TRUE;
} }
if (!_validate_doc(cl->doc)) if (!_validate_doc(vals, cl->doc, &cl->base))
return EINA_FALSE; return EINA_FALSE;
/* also done */ /* also done */
@ -1537,7 +1556,7 @@ _validate_constant(Validate_State *vals, Eolian_Constant *var)
if (!_validate_expr(var->value, var->base_type, 0, EINA_FALSE)) if (!_validate_expr(var->value, var->base_type, 0, EINA_FALSE))
return _reset_stable(vals, was_stable, EINA_FALSE); return _reset_stable(vals, was_stable, EINA_FALSE);
if (!_validate_doc(var->doc)) if (!_validate_doc(vals, var->doc, &var->base))
return _reset_stable(vals, was_stable, EINA_FALSE); return _reset_stable(vals, was_stable, EINA_FALSE);
_reset_stable(vals, was_stable, EINA_TRUE); _reset_stable(vals, was_stable, EINA_TRUE);

View File

@ -1,5 +1,6 @@
class @beta Ecore.Audio.Out.Test extends Ecore.Audio.Out class @beta Ecore.Audio.Out.Test extends Ecore.Audio.Out
{ {
[[No description supplied.]]
data: null; data: null;
implements { implements {
@empty Ecore.Audio.source { set; get; } @empty Ecore.Audio.source { set; get; }

View File

@ -1,4 +1,4 @@
class @beta Efl.App.Test.CML extends Efl.Object implements Efl.Core.Command_Line class @beta Efl.App.Test.CML extends Efl.Object implements Efl.Core.Command_Line
{ {
[[No description supplied.]]
} }

View File

@ -1,9 +1,10 @@
import eina_types; import eina_types;
class Dummy.Child extends Dummy.Test_Object { class Dummy.Child extends Dummy.Test_Object {
[[No description supplied.]]
methods { methods {
double_params { double_params {
[[No description supplied.]]
params { params {
@in a: string; @in a: string;
@in b: double; @in b: double;
@ -11,6 +12,7 @@ class Dummy.Child extends Dummy.Test_Object {
} }
@property iface_was_set { @property iface_was_set {
[[No description supplied.]]
get {} get {}
values { values {
data: bool; data: bool;
@ -30,6 +32,7 @@ class Dummy.Child extends Dummy.Test_Object {
} }
@property obligatory_beta_ctor_was_called { @property obligatory_beta_ctor_was_called {
[[No description supplied.]]
get{} get{}
values { values {
data: bool; data: bool;
@ -37,6 +40,7 @@ class Dummy.Child extends Dummy.Test_Object {
} }
@property optional_beta_ctor_was_called { @property optional_beta_ctor_was_called {
[[No description supplied.]]
get{} get{}
values { values {
data: bool; data: bool;

View File

@ -1,16 +1,21 @@
class Dummy.Constructible_Object extends Efl.Object { class Dummy.Constructible_Object extends Efl.Object {
[[No description supplied.]]
methods { methods {
construct_type_and_store { construct_type_and_store {
[[No description supplied.]]
params { params {
@in type: const(Efl.Class); @in type: const(Efl.Class);
} }
return: Efl.Object; return: Efl.Object;
} }
increment_default_construction_count { increment_default_construction_count {
[[No description supplied.]]
} }
increment_special_construction_count { increment_special_construction_count {
[[No description supplied.]]
} }
@property native_construction_count { @property native_construction_count {
[[No description supplied.]]
get { get {
} }
values { values {
@ -18,6 +23,7 @@ class Dummy.Constructible_Object extends Efl.Object {
} }
} }
@property default_construction_count { @property default_construction_count {
[[No description supplied.]]
get { get {
} }
values { values {
@ -25,6 +31,7 @@ class Dummy.Constructible_Object extends Efl.Object {
} }
} }
@property special_construction_count { @property special_construction_count {
[[No description supplied.]]
get { get {
} }
values { values {
@ -32,6 +39,7 @@ class Dummy.Constructible_Object extends Efl.Object {
} }
} }
@property internal_object { @property internal_object {
[[No description supplied.]]
get { get {
} }
values { values {
@ -39,6 +47,7 @@ class Dummy.Constructible_Object extends Efl.Object {
} }
} }
multiply_integer_value @const { multiply_integer_value @const {
[[No description supplied.]]
params { params {
v: int; v: int;
} }

View File

@ -1,9 +1,10 @@
import eina_types; import eina_types;
class Dummy.Event_Manager extends Efl.Object { class Dummy.Event_Manager extends Efl.Object {
[[No description supplied.]]
methods { methods {
@property emitter { @property emitter {
[[No description supplied.]]
set { set {
} }
values { values {
@ -12,6 +13,7 @@ class Dummy.Event_Manager extends Efl.Object {
} }
emit_with_int { emit_with_int {
[[No description supplied.]]
params { params {
data: int; data: int;
} }
@ -19,6 +21,7 @@ class Dummy.Event_Manager extends Efl.Object {
} }
release { release {
[[No description supplied.]]
} }
} }

View File

@ -1,2 +1,3 @@
class Dummy.Hidden_Object extends Efl.Object { class Dummy.Hidden_Object extends Efl.Object {
[[No description supplied.]]
} }

View File

@ -1,13 +1,16 @@
class Dummy.Inherit_Helper extends Efl.Object class Dummy.Inherit_Helper extends Efl.Object
{ {
[[No description supplied.]]
methods { methods {
receive_dummy_and_call_int_out @static { receive_dummy_and_call_int_out @static {
[[No description supplied.]]
params { params {
@in x: Dummy.Test_Object; @in x: Dummy.Test_Object;
} }
return: int; return: int;
} }
receive_dummy_and_call_in_stringshare @static { receive_dummy_and_call_in_stringshare @static {
[[No description supplied.]]
params { params {
@in x: Dummy.Inherit_Iface; @in x: Dummy.Inherit_Iface;
} }

View File

@ -1,6 +1,8 @@
interface Dummy.Inherit_Iface { interface Dummy.Inherit_Iface {
[[No description supplied.]]
methods { methods {
stringshare_test { stringshare_test {
[[No description supplied.]]
params { params {
@in v: stringshare; @in v: stringshare;
} }

View File

@ -1,6 +1,8 @@
class Dummy.Numberwrapper extends Efl.Object { class Dummy.Numberwrapper extends Efl.Object {
[[No description supplied.]]
methods { methods {
@property number { @property number {
[[No description supplied.]]
get { get {
} }
set { set {

View File

@ -1,7 +1,7 @@
import eina_types; import eina_types;
class Dummy.Part_Holder extends Dummy.Test_Object implements Efl.Part { class Dummy.Part_Holder extends Dummy.Test_Object implements Efl.Part {
[[No description supplied.]]
parts { parts {
one: Dummy.Test_Object; [[ Part number one. ]] one: Dummy.Test_Object; [[ Part number one. ]]
two: Dummy.Test_Object; [[ Part number two. ]] two: Dummy.Test_Object; [[ Part number two. ]]

View File

@ -1,9 +1,12 @@
interface Dummy.Test_Iface interface Dummy.Test_Iface
{ {
[[No description supplied.]]
methods { methods {
emit_nonconflicted { emit_nonconflicted {
[[No description supplied.]]
} }
@property iface_prop { @property iface_prop {
[[No description supplied.]]
get {} get {}
set {} set {}
values { values {
@ -12,6 +15,7 @@ interface Dummy.Test_Iface
} }
method_protected @protected @const { method_protected @protected @const {
[[No description supplied.]]
params { params {
@in x: int; @in x: int;
} }
@ -19,6 +23,7 @@ interface Dummy.Test_Iface
} }
call_method_protected @const { call_method_protected @const {
[[No description supplied.]]
params { params {
@in x: int; @in x: int;
} }
@ -26,6 +31,7 @@ interface Dummy.Test_Iface
} }
@property protected_prop @protected { @property protected_prop @protected {
[[No description supplied.]]
get {} get {}
set {} set {}
values { values {
@ -34,6 +40,7 @@ interface Dummy.Test_Iface
} }
@property public_getter_private_setter { @property public_getter_private_setter {
[[No description supplied.]]
get {} get {}
set @protected {} set @protected {}
values { values {
@ -42,6 +49,7 @@ interface Dummy.Test_Iface
} }
@property static_prop @static { @property static_prop @static {
[[No description supplied.]]
get {} get {}
set {} set {}
values { values {

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
class Eina_Simple extends Efl.Object class Eina_Simple extends Efl.Object
{ {
[[No description supplied.]]
data: null; data: null;
implements { implements {
Efl.Object.constructor; Efl.Object.constructor;

View File

@ -1,4 +1,4 @@
class @beta Focus_Manager_Test extends Focus.Test implements Efl.Ui.Focus.Manager_Window_Root class @beta Focus_Manager_Test extends Focus.Test implements Efl.Ui.Focus.Manager_Window_Root
{ {
[[No description supplied.]]
} }

View File

@ -2,13 +2,16 @@ class @beta Focus.Test
extends Efl.Object extends Efl.Object
implements Efl.Ui.Focus.Object, Efl.Gfx.Entity implements Efl.Ui.Focus.Object, Efl.Gfx.Entity
{ {
[[No description supplied.]]
methods { methods {
test_size { test_size {
[[No description supplied.]]
params { params {
rect : Eina.Rect; rect : Eina.Rect;
} }
} }
@property manager { @property manager {
[[No description supplied.]]
set { set {
} }

View File

@ -2,6 +2,7 @@ class @beta Focus.Test.Sub.Main
extends Efl.Object extends Efl.Object
implements Efl.Ui.Focus.Object, Efl.Ui.Focus.Manager_Sub, Efl.Gfx.Entity implements Efl.Ui.Focus.Object, Efl.Ui.Focus.Manager_Sub, Efl.Gfx.Entity
{ {
[[No description supplied.]]
implements { implements {
Efl.Ui.Focus.Object.focus_manager { get; } Efl.Ui.Focus.Object.focus_manager { get; }
Efl.Ui.Focus.Object.focus_parent { get; } Efl.Ui.Focus.Object.focus_parent { get; }

View File

@ -1,6 +1,8 @@
abstract Base { abstract Base {
[[No description supplied.]]
methods { methods {
@property z { @property z {
[[No description supplied.]]
values { values {
a: int; a: int;
b: char; b: char;
@ -8,8 +10,10 @@ abstract Base {
} }
} }
constructor @pure_virtual { constructor @pure_virtual {
[[No description supplied.]]
} }
destructor { destructor {
[[No description supplied.]]
} }
} }
constructors { constructors {

View File

@ -1,20 +1,27 @@
class Class_Funcs { class Class_Funcs {
[[No description supplied.]]
methods { methods {
@property a @static { @property a @static {
[[No description supplied.]]
get { get {
} }
} }
@property b { @property b {
[[No description supplied.]]
get { get {
} }
} }
foo @static { foo @static {
[[No description supplied.]]
} }
bar { bar {
[[No description supplied.]]
} }
baz @protected @static { baz @protected @static {
[[No description supplied.]]
} }
bah @protected { bah @protected {
[[No description supplied.]]
} }
} }
} }

View File

@ -2,7 +2,7 @@ import base;
import mixins_require; import mixins_require;
class Class.Requires extends Base implements Mixins.Require { class Class.Requires extends Base implements Mixins.Require {
[[No description supplied.]]
methods { methods {
} }
} }

View File

@ -1,6 +1,8 @@
class Complex_Type { class Complex_Type {
[[No description supplied.]]
methods { methods {
@property a { @property a {
[[No description supplied.]]
set { set {
return: list<array<strbuf @move> > @move; return: list<array<strbuf @move> > @move;
} }
@ -11,6 +13,7 @@ class Complex_Type {
} }
} }
foo { foo {
[[No description supplied.]]
params { params {
buf: mstring @move; buf: mstring @move;
sl: slice<ubyte>; sl: slice<ubyte>;

View File

@ -1,4 +1,5 @@
class Consts { class Consts {
[[No description supplied.]]
methods { methods {
foo @const { foo @const {
[[comment foo]] [[comment foo]]

View File

@ -1,14 +1,18 @@
class Ctor_Dtor extends Base { class Ctor_Dtor extends Base {
[[No description supplied.]]
methods { methods {
custom_constructor_1 { custom_constructor_1 {
[[No description supplied.]]
params { params {
@in a: int; @in a: int;
@in b: char; @in b: char;
} }
} }
custom_constructor_2 { custom_constructor_2 {
[[No description supplied.]]
} }
custom_constructor_3 { custom_constructor_3 {
[[No description supplied.]]
params { params {
@in z: int; @in z: int;
} }

View File

@ -1,23 +1,27 @@
// regular named enum // regular named enum
enum Foo { enum Foo {
[[No description supplied.]]
first, first,
bar, bar,
baz = 5 * 3 baz = 5 * 3
} }
enum Baz { enum Baz {
[[No description supplied.]]
flag1 = 1 << 0, flag1 = 1 << 0,
flag2 = 1 << 1, flag2 = 1 << 1,
flag3 = 1 << 2, // testing trailing comma on last item flag3 = 1 << 2, // testing trailing comma on last item
} }
enum Name.Spaced { enum Name.Spaced {
[[No description supplied.]]
pants pants
} }
const Bah: Baz = Baz.flag1; const Bah: Baz = Baz.flag1; [[No description supplied.]]
enum Value { enum Value {
[[No description supplied.]]
foo, foo,
bar, bar,
baz = 2, baz = 2,
@ -26,11 +30,13 @@ enum Value {
pants pants
} }
const Pants: Value = Value.pants; const Pants: Value = Value.pants; [[No description supplied.]]
class Enum { class Enum {
[[No description supplied.]]
methods { methods {
foo { foo {
[[No description supplied.]]
params { params {
idx: int; idx: int;
} }

View File

@ -1,14 +1,16 @@
struct Evas_Event_Clicked_Double_Info { struct Evas_Event_Clicked_Double_Info {
[[No description supplied.]]
pants: int; pants: int;
} }
class Events { class Events {
[[No description supplied.]]
event_c_prefix: totally_not_events; event_c_prefix: totally_not_events;
events { events {
clicked @beta: void; [[Comment for clicked]] clicked @beta: void; [[Comment for clicked]]
clicked,double: Evas_Event_Clicked_Double_Info; /* No comment */ clicked,double: Evas_Event_Clicked_Double_Info; [[No description supplied.]]
hot @hot: void; hot @hot: void; [[No description supplied.]]
restart @restart: void; restart @restart: void; [[No description supplied.]]
hot_restart @hot @restart: void; hot_restart @hot @restart: void; [[No description supplied.]]
} }
} }

View File

@ -1,24 +1,28 @@
/* regular type */ /* regular type */
type Foo: int; type Foo: int; [[No description supplied.]]
/* extern type */ /* extern type */
type @extern Evas.Coord: int; type @extern Evas.Coord: int; [[No description supplied.]]
/* regular struct */ /* regular struct */
struct X struct X
{ {
[[No description supplied.]]
field: int; field: int;
} }
/* extern struct */ /* extern struct */
struct @extern Y struct @extern Y
{ {
[[No description supplied.]]
field: int; field: int;
} }
class Extern { class Extern {
[[No description supplied.]]
methods { methods {
foo { foo {
[[No description supplied.]]
params { params {
idx: int; idx: int;
} }

View File

@ -1,18 +1,22 @@
/* regular struct */ /* regular struct */
struct Named1 { struct Named1 {
[[No description supplied.]]
field: int; field: int;
} }
struct @free(test_free) Named2 { struct @free(test_free) Named2 {
[[No description supplied.]]
field: int; field: int;
} }
/* opaque */ /* opaque */
struct Opaque1; struct Opaque1; [[No description supplied.]]
struct @free(opaque_free) Opaque2; struct @free(opaque_free) Opaque2; [[No description supplied.]]
class Free_Func { class Free_Func {
[[No description supplied.]]
methods { methods {
foo { foo {
[[No description supplied.]]
params { params {
idx: int; idx: int;
} }

View File

@ -1,14 +1,17 @@
import function_types; import function_types;
class Function_As_Argument { class Function_As_Argument {
[[No description supplied.]]
methods { methods {
set_cb { set_cb {
[[No description supplied.]]
params { params {
cb: SimpleFunc; cb: SimpleFunc;
} }
} }
call_cb { call_cb {
[[No description supplied.]]
params { params {
a: int; a: int;
b: double; b: double;

View File

@ -13,12 +13,33 @@ typedef Eo Function_As_Argument;
#endif #endif
/** No description supplied.
*
* @ingroup Function_As_Argument
*/
#define FUNCTION_AS_ARGUMENT_CLASS function_as_argument_class_get() #define FUNCTION_AS_ARGUMENT_CLASS function_as_argument_class_get()
EWAPI const Efl_Class *function_as_argument_class_get(void); EWAPI const Efl_Class *function_as_argument_class_get(void);
/**
* @brief No description supplied.
*
* @param[in] obj The object.
* @param[in] cb
*
* @ingroup Function_As_Argument
*/
EOAPI void function_as_argument_set_cb(Eo *obj, void *cb_data, SimpleFunc cb, Eina_Free_Cb cb_free_cb); EOAPI void function_as_argument_set_cb(Eo *obj, void *cb_data, SimpleFunc cb, Eina_Free_Cb cb_free_cb);
/**
* @brief No description supplied.
*
* @param[in] obj The object.
* @param[in] a
* @param[in] b
*
* @ingroup Function_As_Argument
*/
EOAPI char *function_as_argument_call_cb(Eo *obj, int a, double b) EFL_TRANSFER_OWNERSHIP; EOAPI char *function_as_argument_call_cb(Eo *obj, int a, double b) EFL_TRANSFER_OWNERSHIP;
#endif #endif

View File

@ -1,10 +1,12 @@
// typedef void (*VoidFunc)(void *data); // typedef void (*VoidFunc)(void *data);
function VoidFunc { function VoidFunc {
[[No description supplied.]]
}; };
// typedef const char *(*SimpleFunc)(void *data, int a, double b); // typedef const char *(*SimpleFunc)(void *data, int a, double b);
function SimpleFunc { function SimpleFunc {
[[No description supplied.]]
params { params {
a: int; a: int;
b: double; b: double;
@ -14,6 +16,7 @@ function SimpleFunc {
// typedef double (*ComplexFunc)(void *data, const char *a, const char **b); // typedef double (*ComplexFunc)(void *data, const char *a, const char **b);
function ComplexFunc { function ComplexFunc {
[[No description supplied.]]
params { params {
@in c: string; @in c: string;
@out d: mstring @move; @out d: mstring @move;
@ -23,6 +26,7 @@ function ComplexFunc {
// typedef void (*FuncAsArgFunc)(void *data, VoidFunc cb, SimpleFunc another_cb); // typedef void (*FuncAsArgFunc)(void *data, VoidFunc cb, SimpleFunc another_cb);
function FuncAsArgFunc { function FuncAsArgFunc {
[[No description supplied.]]
params { params {
cb: VoidFunc; cb: VoidFunc;
another_cb: SimpleFunc; another_cb: SimpleFunc;

View File

@ -4,12 +4,28 @@
#ifndef _FUNCTION_TYPES_EOT_TYPES #ifndef _FUNCTION_TYPES_EOT_TYPES
#define _FUNCTION_TYPES_EOT_TYPES #define _FUNCTION_TYPES_EOT_TYPES
/** No description supplied.
*
* @ingroup VoidFunc
*/
typedef void (*VoidFunc)(void *data); typedef void (*VoidFunc)(void *data);
/** No description supplied.
*
* @ingroup SimpleFunc
*/
typedef const char * (*SimpleFunc)(void *data, int a, double b); typedef const char * (*SimpleFunc)(void *data, int a, double b);
/** No description supplied.
*
* @ingroup ComplexFunc
*/
typedef double (*ComplexFunc)(void *data, const char *c, char **d EFL_TRANSFER_OWNERSHIP); typedef double (*ComplexFunc)(void *data, const char *c, char **d EFL_TRANSFER_OWNERSHIP);
/** No description supplied.
*
* @ingroup FuncAsArgFunc
*/
typedef void (*FuncAsArgFunc)(void *data, void *cb_data, VoidFunc cb, Eina_Free_Cb cb_free_cb, void *another_cb_data, SimpleFunc another_cb, Eina_Free_Cb another_cb_free_cb); typedef void (*FuncAsArgFunc)(void *data, void *cb_data, VoidFunc cb, Eina_Free_Cb cb_free_cb, void *another_cb_data, SimpleFunc another_cb, Eina_Free_Cb another_cb_free_cb);

View File

@ -1,6 +1,7 @@
interface Iface { interface Iface {
[[No description supplied.]]
methods { methods {
foo {} foo { [[No description supplied.]] }
bar {} bar { [[No description supplied.]] }
} }
} }

View File

@ -1,8 +1,10 @@
import import_types; import import_types;
class Import { class Import {
[[No description supplied.]]
methods { methods {
foo { foo {
[[No description supplied.]]
} }
} }
} }

View File

@ -1,5 +1,6 @@
type Imported: int; type Imported: int; [[No description supplied.]]
struct Imported_Struct { struct Imported_Struct {
[[No description supplied.]]
foo: float; foo: float;
} }

View File

@ -4,8 +4,16 @@
#ifndef _IMPORT_TYPES_EOT_TYPES #ifndef _IMPORT_TYPES_EOT_TYPES
#define _IMPORT_TYPES_EOT_TYPES #define _IMPORT_TYPES_EOT_TYPES
/** No description supplied.
*
* @ingroup Imported
*/
typedef int Imported; typedef int Imported;
/** No description supplied.
*
* @ingroup Imported_Struct
*/
typedef struct _Imported_Struct typedef struct _Imported_Struct
{ {
float foo; float foo;

View File

@ -2,9 +2,10 @@ import base;
import class_simple; import class_simple;
mixin Mixins.Require requires Base { mixin Mixins.Require requires Base {
[[No description supplied.]]
methods { methods {
test { test {
[[No description supplied.]]
} }
} }
implements { implements {

View File

@ -1,5 +1,6 @@
class nmsp1.class1 extends nmsp1.nmsp11.class2 implements nmsp2.class1, no_nmsp class nmsp1.class1 extends nmsp1.nmsp11.class2 implements nmsp2.class1, no_nmsp
{ {
[[No description supplied.]]
implements { implements {
nmsp1.nmsp11.class2.a { set; } nmsp1.nmsp11.class2.a { set; }
no_nmsp.foo; no_nmsp.foo;

View File

@ -1,7 +1,9 @@
abstract nmsp1.nmsp11.class2 abstract nmsp1.nmsp11.class2
{ {
[[No description supplied.]]
methods { methods {
@property a { @property a {
[[No description supplied.]]
set @pure_virtual { set @pure_virtual {
} }
} }

View File

@ -1,3 +1,4 @@
mixin nmsp2.class1 mixin nmsp2.class1
{ {
[[No description supplied.]]
} }

View File

@ -1,7 +1,9 @@
mixin no_nmsp mixin no_nmsp
{ {
[[No description supplied.]]
methods { methods {
foo { foo {
[[No description supplied.]]
} }
} }
} }

View File

@ -1,6 +1,8 @@
abstract Object_Impl extends Base { abstract Object_Impl extends Base {
[[No description supplied.]]
methods { methods {
@property a { @property a {
[[No description supplied.]]
set { set {
values { values {
value: const(list<string>); value: const(list<string>);
@ -17,6 +19,7 @@ abstract Object_Impl extends Base {
} }
} }
@property b { @property b {
[[No description supplied.]]
set { set {
} }
get @pure_virtual { get @pure_virtual {
@ -27,12 +30,14 @@ abstract Object_Impl extends Base {
} }
} }
constructor_1 { constructor_1 {
[[No description supplied.]]
params { params {
@in a: int; @in a: int;
@in b: char; @in b: char;
} }
} }
constructor_2 { constructor_2 {
[[No description supplied.]]
} }
foo1 { foo1 {
[[comment foo]] [[comment foo]]
@ -51,6 +56,7 @@ abstract Object_Impl extends Base {
} }
} }
pure_foo3 @pure_virtual { pure_foo3 @pure_virtual {
[[No description supplied.]]
/* set as virtual pure - no implementation expected */ /* set as virtual pure - no implementation expected */
} }
} }

View File

@ -1,8 +1,10 @@
class Object_Impl_Add extends Base { class Object_Impl_Add extends Base {
[[No description supplied.]]
data: Object_Impl_Data; data: Object_Impl_Data;
methods { methods {
@property c { @property c {
[[No description supplied.]]
set { set {
} }
get { get {

View File

@ -1,12 +1,15 @@
abstract Override extends Base { abstract Override extends Base {
[[No description supplied.]]
methods { methods {
@property a { @property a {
[[No description supplied.]]
set @pure_virtual { set @pure_virtual {
} }
get { get {
} }
} }
@property b { @property b {
[[No description supplied.]]
set { set {
} }
get { get {
@ -21,6 +24,7 @@ abstract Override extends Base {
} }
} }
@property c { @property c {
[[No description supplied.]]
set { set {
} }
get { get {
@ -33,8 +37,10 @@ abstract Override extends Base {
} }
} }
foo @pure_virtual { foo @pure_virtual {
[[No description supplied.]]
} }
bar { bar {
[[No description supplied.]]
params { params {
@in idx: int; @in idx: int;
@out a: int (250); @out a: int (250);

View File

@ -1,4 +1,5 @@
class Parts extends Override { class Parts extends Override {
[[No description supplied.]]
parts { parts {
part1: Override; [[Part 1]] part1: Override; [[Part 1]]
part2 @beta: Parts; [[Part 2]] part2 @beta: Parts; [[Part 2]]

View File

@ -1,24 +1,31 @@
class Scope { class Scope {
[[No description supplied.]]
methods { methods {
@property a @protected { @property a @protected {
[[No description supplied.]]
get { get {
} }
} }
@property b { @property b {
[[No description supplied.]]
get { get {
} }
} }
@property c { @property c {
[[No description supplied.]]
get { get {
} }
set @protected { set @protected {
} }
} }
foo { foo {
[[No description supplied.]]
} }
bar @protected { bar @protected {
[[No description supplied.]]
} }
foobar { foobar {
[[No description supplied.]]
} }
} }
} }

View File

@ -1,20 +1,24 @@
struct Named { struct Named {
[[No description supplied.]]
field: int @by_ref; field: int @by_ref;
something: string; something: string;
} }
struct Another { struct Another {
[[No description supplied.]]
field: Named; field: Named;
} }
/* opaque struct */ /* opaque struct */
struct Opaque; struct Opaque; [[No description supplied.]]
struct @extern Not.Generated { struct @extern Not.Generated {
field: int; [[No description supplied.]]
field: int;
} }
class Struct { class Struct {
[[No description supplied.]]
methods { methods {
foo { foo {
[[Foo docs. This is $monospace. This is alone-standing $.]] [[Foo docs. This is $monospace. This is alone-standing $.]]
@ -24,6 +28,7 @@ class Struct {
return: mstring @move; return: mstring @move;
} }
bar { bar {
[[No description supplied.]]
return: Named @by_ref; return: Named @by_ref;
} }
} }

View File

@ -11,21 +11,37 @@ typedef Eo Struct;
#ifndef _STRUCT_EO_TYPES #ifndef _STRUCT_EO_TYPES
#define _STRUCT_EO_TYPES #define _STRUCT_EO_TYPES
/** No description supplied.
*
* @ingroup Named
*/
typedef struct _Named typedef struct _Named
{ {
int *field; int *field;
const char *something; const char *something;
} Named; } Named;
/** No description supplied.
*
* @ingroup Another
*/
typedef struct _Another typedef struct _Another
{ {
Named field; Named field;
} Another; } Another;
/** No description supplied.
*
* @ingroup Opaque
*/
typedef struct _Opaque Opaque; typedef struct _Opaque Opaque;
#endif #endif
/** No description supplied.
*
* @ingroup Struct
*/
#define STRUCT_CLASS struct_class_get() #define STRUCT_CLASS struct_class_get()
EWAPI const Efl_Class *struct_class_get(void); EWAPI const Efl_Class *struct_class_get(void);
@ -40,6 +56,10 @@ EWAPI const Efl_Class *struct_class_get(void);
*/ */
EOAPI char *struct_foo(Eo *obj, int idx) EFL_TRANSFER_OWNERSHIP; EOAPI char *struct_foo(Eo *obj, int idx) EFL_TRANSFER_OWNERSHIP;
/** No description supplied.
*
* @ingroup Struct
*/
EOAPI Named *struct_bar(Eo *obj); EOAPI Named *struct_bar(Eo *obj);
#endif #endif

View File

@ -3,10 +3,22 @@
typedef Eo Struct; typedef Eo Struct;
/** No description supplied.
*
* @ingroup Named
*/
typedef struct _Named Named; typedef struct _Named Named;
/** No description supplied.
*
* @ingroup Another
*/
typedef struct _Another Another; typedef struct _Another Another;
/** No description supplied.
*
* @ingroup Opaque
*/
typedef struct _Opaque Opaque; typedef struct _Opaque Opaque;

View File

@ -1,15 +1,16 @@
type Evas.Coord: int; /* Simple type definition */ type Evas.Coord: int; [[No description supplied.]]
type List_Objects: list<Typedef>; /* A little more complex */ type List_Objects: list<Typedef>; [[No description supplied.]]
type Evas.Coord2: Evas.Coord; type Evas.Coord2: Evas.Coord; [[No description supplied.]]
type Evas.Coord3: Evas.Coord2; type Evas.Coord3: Evas.Coord2; [[No description supplied.]]
type @extern Evas.Pants: float; /* not generated */ type @extern Evas.Pants: float; [[No description supplied.]]
type @beta Undef: __undefined_type; /* not generated */ type @beta Undef: __undefined_type; [[No description supplied.]]
enum Elm.Object.Select_Mode enum Elm.Object.Select_Mode
{ {
[[No description supplied.]]
default = 0, default = 0,
always, always,
none, none,
@ -18,8 +19,10 @@ enum Elm.Object.Select_Mode
} }
class Typedef { class Typedef {
[[No description supplied.]]
methods { methods {
foo { foo {
[[No description supplied.]]
params { params {
idx: int; idx: int;
} }

View File

@ -11,14 +11,34 @@ typedef Eo Typedef;
#ifndef _TYPEDEF_EO_TYPES #ifndef _TYPEDEF_EO_TYPES
#define _TYPEDEF_EO_TYPES #define _TYPEDEF_EO_TYPES
/** No description supplied.
*
* @ingroup Evas
*/
typedef int Evas_Coord; typedef int Evas_Coord;
/** No description supplied.
*
* @ingroup List_Objects
*/
typedef Eina_List *List_Objects; typedef Eina_List *List_Objects;
/** No description supplied.
*
* @ingroup Evas
*/
typedef Evas_Coord Evas_Coord2; typedef Evas_Coord Evas_Coord2;
/** No description supplied.
*
* @ingroup Evas
*/
typedef Evas_Coord2 Evas_Coord3; typedef Evas_Coord2 Evas_Coord3;
/** No description supplied.
*
* @ingroup Elm_Object
*/
typedef enum typedef enum
{ {
ELM_OBJECT_SELECT_MODE_DEFAULT = 0, ELM_OBJECT_SELECT_MODE_DEFAULT = 0,
@ -30,10 +50,22 @@ typedef enum
#endif #endif
/** No description supplied.
*
* @ingroup Typedef
*/
#define TYPEDEF_CLASS typedef_class_get() #define TYPEDEF_CLASS typedef_class_get()
EWAPI const Efl_Class *typedef_class_get(void); EWAPI const Efl_Class *typedef_class_get(void);
/**
* @brief No description supplied.
*
* @param[in] obj The object.
* @param[in] idx
*
* @ingroup Typedef
*/
EOAPI char *typedef_foo(Eo *obj, int idx) EFL_TRANSFER_OWNERSHIP; EOAPI char *typedef_foo(Eo *obj, int idx) EFL_TRANSFER_OWNERSHIP;
#endif #endif

View File

@ -3,12 +3,28 @@
typedef Eo Typedef; typedef Eo Typedef;
/** No description supplied.
*
* @ingroup Evas
*/
typedef int Evas_Coord; typedef int Evas_Coord;
/** No description supplied.
*
* @ingroup List_Objects
*/
typedef Eina_List *List_Objects; typedef Eina_List *List_Objects;
/** No description supplied.
*
* @ingroup Evas
*/
typedef Evas_Coord Evas_Coord2; typedef Evas_Coord Evas_Coord2;
/** No description supplied.
*
* @ingroup Evas
*/
typedef Evas_Coord2 Evas_Coord3; typedef Evas_Coord2 Evas_Coord3;

View File

@ -1,4 +1,5 @@
class Unimpl composites Iface { class Unimpl composites Iface {
[[No description supplied.]]
implements { implements {
Iface.foo; Iface.foo;
} }

View File

@ -1,9 +1,11 @@
// regular constant // regular constant
const Foo: int = 5; const Foo: int = 5; [[No description supplied.]]
class Var { class Var {
[[No description supplied.]]
methods { methods {
foo { foo {
[[No description supplied.]]
params { params {
idx: int; idx: int;
} }

View File

@ -1,9 +1,10 @@
class Aux_A extends Aux_C { class Aux_A extends Aux_C {
[[No description supplied.]]
methods { methods {
baz {} baz { [[No description supplied.]] }
} }
events { events {
test2: void; test2: void; [[No description supplied.]]
} }
implements { implements {
Aux_C.foo; Aux_C.foo;

View File

@ -1,2 +1,3 @@
class Aux_B extends Aux_C { class Aux_B extends Aux_C {
[[No description supplied.]]
} }

View File

@ -1,9 +1,10 @@
class Aux_C { class Aux_C {
[[No description supplied.]]
methods { methods {
foo {} foo { [[No description supplied.]] }
bar {} bar { [[No description supplied.]] }
} }
events { events {
test: void; test: void; [[No description supplied.]]
} }
} }

View File

@ -1,5 +1,6 @@
class Generated_Future extends Efl.Object class Generated_Future extends Efl.Object
{ {
[[No description supplied.]]
methods { methods {
} }
} }

View File

@ -1,5 +1,6 @@
class A extends Efl.Object class A extends Efl.Object
{ {
[[No description supplied.]]
data: A_Data; data: A_Data;
implements { implements {
Efl.Object.constructor; Efl.Object.constructor;

View File

@ -1,5 +1,6 @@
class B extends A class B extends A
{ {
[[No description supplied.]]
data: B_Data; data: B_Data;
implements { implements {
Efl.Object.constructor; Efl.Object.constructor;

View File

@ -1,5 +1,6 @@
class C extends B class C extends B
{ {
[[No description supplied.]]
data: C_Data; data: C_Data;
implements { implements {
Efl.Object.constructor; Efl.Object.constructor;

View File

@ -1,196 +1,236 @@
class Complex extends Efl.Object class Complex extends Efl.Object
{ {
[[No description supplied.]]
data: Complex_Data; data: Complex_Data;
methods { methods {
// container test // container test
inptrcont { inptrcont {
[[No description supplied.]]
params { params {
l: list<string>; l: list<string>;
} }
} }
inclasscont { inclasscont {
[[No description supplied.]]
params { params {
l: list<Efl.Object>; l: list<Efl.Object>;
} }
} }
incontcont { incontcont {
[[No description supplied.]]
params { params {
l: list<list<string>>; l: list<list<string>>;
} }
} }
incontcontown { incontcontown {
[[No description supplied.]]
params { params {
l: list<list<string>> @move; l: list<list<string>> @move;
} }
} }
incontowncontown { incontowncontown {
[[No description supplied.]]
params { params {
l: list<list<string> @move> @move; l: list<list<string> @move> @move;
} }
} }
incontowncont { incontowncont {
[[No description supplied.]]
params { params {
l: list<list<string> @move>; l: list<list<string> @move>;
} }
} }
instringcont { instringcont {
[[No description supplied.]]
params { params {
l: list<string>; l: list<string>;
} }
} }
instringowncont { instringowncont {
[[No description supplied.]]
params { params {
l: list<mstring @move>; l: list<mstring @move>;
} }
} }
instringcontown { instringcontown {
[[No description supplied.]]
params { params {
l: list<string> @move; l: list<string> @move;
} }
} }
inarray { inarray {
[[No description supplied.]]
params { params {
l: array<string>; l: array<string>;
} }
} }
inarrayown { inarrayown {
[[No description supplied.]]
params { params {
l: array<string> @move; l: array<string> @move;
} }
} }
inhash @beta { inhash @beta {
[[No description supplied.]]
params { params {
l: hash<string, string>; l: hash<string, string>;
} }
} }
inhashown @beta { inhashown @beta {
[[No description supplied.]]
params { params {
l: hash<string, string> @move; l: hash<string, string> @move;
} }
} }
initerator { initerator {
[[No description supplied.]]
params { params {
l: iterator<int>; l: iterator<int>;
} }
} }
initeratorown { initeratorown {
[[No description supplied.]]
params { params {
l: iterator<int> @move; l: iterator<int> @move;
} }
} }
inaccessor { inaccessor {
[[No description supplied.]]
params { params {
l: accessor<int>; l: accessor<int>;
} }
} }
inaccessorown { inaccessorown {
[[No description supplied.]]
params { params {
l: accessor<int> @move; l: accessor<int> @move;
} }
} }
// out // out
outclasscont { outclasscont {
[[No description supplied.]]
params { params {
@out l: list<Efl.Object>; @out l: list<Efl.Object>;
} }
} }
outcontcont { outcontcont {
[[No description supplied.]]
params { params {
@out l: list<list<string>>; @out l: list<list<string>>;
} }
} }
outcontcontown { outcontcontown {
[[No description supplied.]]
params { params {
@out l: list<list<string>> @move; @out l: list<list<string>> @move;
} }
} }
outcontowncontown { outcontowncontown {
[[No description supplied.]]
params { params {
@out l: list<list<string> @move> @move; @out l: list<list<string> @move> @move;
} }
} }
outcontowncont { outcontowncont {
[[No description supplied.]]
params { params {
@out l: list<list<string> @move>; @out l: list<list<string> @move>;
} }
} }
outstringcont { outstringcont {
[[No description supplied.]]
params { params {
@out l: list<string>; @out l: list<string>;
} }
} }
outstringowncont { outstringowncont {
[[No description supplied.]]
params { params {
@out l: list<mstring @move>; @out l: list<mstring @move>;
} }
} }
outstringcontown { outstringcontown {
[[No description supplied.]]
params { params {
@out l: list<string> @move; @out l: list<string> @move;
} }
} }
outarray { outarray {
[[No description supplied.]]
params { params {
@out l: array<string>; @out l: array<string>;
} }
} }
outarrayown { outarrayown {
[[No description supplied.]]
params { params {
@out l: array<string> @move; @out l: array<string> @move;
} }
} }
outhash @beta { outhash @beta {
[[No description supplied.]]
params { params {
@out l: hash<string, string>; @out l: hash<string, string>;
} }
} }
outhashown @beta { outhashown @beta {
[[No description supplied.]]
params { params {
@out l: hash<string, string> @move; @out l: hash<string, string> @move;
} }
} }
outiterator { outiterator {
[[No description supplied.]]
params { params {
@out l: iterator<int>; @out l: iterator<int>;
} }
} }
outiteratorown { outiteratorown {
[[No description supplied.]]
params { params {
@out l: iterator<int> @move; @out l: iterator<int> @move;
} }
} }
outaccessor { outaccessor {
[[No description supplied.]]
params { params {
@out l: accessor<int>; @out l: accessor<int>;
} }
} }
outaccessorown { outaccessorown {
[[No description supplied.]]
params { params {
@out l: accessor<int> @move; @out l: accessor<int> @move;
} }
} }
foo { foo {
[[No description supplied.]]
params { params {
l: list<string>; l: list<string>;
} }
} }
bar { bar {
[[No description supplied.]]
return: array<string>; return: array<string>;
} }
wrapper_r { wrapper_r {
[[No description supplied.]]
return: Complex; return: Complex;
} }
wrapper_in { wrapper_in {
[[No description supplied.]]
params { params {
@in a1: Complex; @in a1: Complex;
} }
} }
wrapper_inout { wrapper_inout {
[[No description supplied.]]
params { params {
@inout a1: Complex; @inout a1: Complex;
} }
} }
wrapper_out { wrapper_out {
[[No description supplied.]]
params { params {
@out a1: Complex; @out a1: Complex;
} }

View File

@ -1,7 +1,9 @@
class Cyclic1 class Cyclic1
{ {
[[No description supplied.]]
methods { methods {
foo { foo {
[[No description supplied.]]
return: Cyclic2; return: Cyclic2;
} }
} }

View File

@ -1,7 +1,9 @@
class Cyclic2 class Cyclic2
{ {
[[No description supplied.]]
methods { methods {
foo { foo {
[[No description supplied.]]
return: Cyclic1; return: Cyclic1;
} }
} }

View File

@ -1,15 +1,17 @@
struct Generic.Event struct Generic.Event
{ {
[[No description supplied.]]
field1: int; field1: int;
field2: list<string>; field2: list<string>;
} }
class Generic extends Efl.Object implements Generic_Interface class Generic extends Efl.Object implements Generic_Interface
{ {
[[No description supplied.]]
data: Generic_Data; data: Generic_Data;
methods { methods {
@property req_ctor_a_value { @property req_ctor_a_value {
[[No description supplied.]]
get { get {
} }
values { values {
@ -17,6 +19,7 @@ class Generic extends Efl.Object implements Generic_Interface
} }
} }
@property opt_ctor_a_value { @property opt_ctor_a_value {
[[No description supplied.]]
get { get {
} }
values { values {
@ -24,92 +27,114 @@ class Generic extends Efl.Object implements Generic_Interface
} }
} }
required_ctor_a { required_ctor_a {
[[No description supplied.]]
params { params {
@in value: int; @in value: int;
} }
} }
required_ctor_b { required_ctor_b {
[[No description supplied.]]
params { params {
@in value: int; @in value: int;
} }
} }
optional_ctor_a { optional_ctor_a {
[[No description supplied.]]
params { params {
@in value: int; @in value: int;
} }
} }
optional_ctor_b { optional_ctor_b {
[[No description supplied.]]
params { params {
@in value: int; @in value: int;
} }
} }
@property req_ctor_b_value { @property req_ctor_b_value {
[[No description supplied.]]
get {} get {}
values { values {
value: int; value: int;
} }
} }
@property opt_ctor_b_value { @property opt_ctor_b_value {
[[No description supplied.]]
get {} get {}
values { values {
value: int; value: int;
} }
} }
out_required_ctor_a { out_required_ctor_a {
[[No description supplied.]]
params { params {
@out value: int; @out value: int;
} }
} }
out_required_ctor_b { out_required_ctor_b {
[[No description supplied.]]
params { params {
@out value: int; @out value: int;
} }
} }
out_optional_ctor_a { out_optional_ctor_a {
[[No description supplied.]]
params { params {
@out value: int; @out value: int;
} }
} }
out_optional_ctor_b { out_optional_ctor_b {
[[No description supplied.]]
params { params {
@out value: int; @out value: int;
} }
} }
call_event1 { call_event1 {
[[No description supplied.]]
} }
call_event2 { call_event2 {
[[No description supplied.]]
} }
call_event3 { call_event3 {
[[No description supplied.]]
} }
call_event4 { call_event4 {
[[No description supplied.]]
} }
call_event5 { call_event5 {
[[No description supplied.]]
} }
protected_method1 @protected { protected_method1 @protected {
[[No description supplied.]]
} }
beta_method1 @beta { beta_method1 @beta {
[[No description supplied.]]
} }
protected_beta_method1 @protected @beta { protected_beta_method1 @protected @beta {
[[No description supplied.]]
} }
event_param { event_param {
[[No description supplied.]]
params { params {
value: event; value: event;
} }
} }
const_event_param { const_event_param {
[[No description supplied.]]
params { params {
value: const(event); value: const(event);
} }
} }
binbuf_param { binbuf_param {
[[No description supplied.]]
params { params {
value: binbuf; value: binbuf;
} }
} }
const_binbuf_param { const_binbuf_param {
[[No description supplied.]]
params { params {
value: const(binbuf); value: const(binbuf);
} }
@ -125,13 +150,13 @@ class Generic extends Efl.Object implements Generic_Interface
Efl.Object.constructor; Efl.Object.constructor;
} }
events { events {
prefix,event1: void; prefix,event1: void; [[No description supplied.]]
prefix,event2: Generic; prefix,event2: Generic; [[No description supplied.]]
prefix,event3: int; prefix,event3: int; [[No description supplied.]]
prefix,event4: const(array<string>); prefix,event4: const(array<string>); [[No description supplied.]]
prefix,event5: Generic.Event; prefix,event5: Generic.Event; [[No description supplied.]]
protected,event1 @protected: void; protected,event1 @protected: void; [[No description supplied.]]
beta,event1 @beta: void; beta,event1 @beta: void; [[No description supplied.]]
protected,beta,event1 @beta @protected: void; protected,beta,event1 @beta @protected: void; [[No description supplied.]]
} }
} }

View File

@ -1,3 +1,4 @@
interface Generic_Interface interface Generic_Interface
{ {
[[No description supplied.]]
} }

View File

@ -1,3 +1,4 @@
class Name.Name { class Name.Name {
[[No description supplied.]]
} }

View File

@ -1,3 +1,4 @@
class Ns.Name { class Ns.Name {
[[No description supplied.]]
} }

View File

@ -1,3 +1,4 @@
class Ns.Name.Other { class Ns.Name.Other {
[[No description supplied.]]
} }

View File

@ -1,11 +1,14 @@
class Property_Holder extends Efl.Object class Property_Holder extends Efl.Object
{ {
[[No description supplied.]]
methods { methods {
some_method { some_method {
[[No description supplied.]]
return: int; return: int;
} }
@property prop_simple { @property prop_simple {
[[No description supplied.]]
get {} get {}
set {} set {}
values { values {
@ -14,6 +17,7 @@ class Property_Holder extends Efl.Object
} }
@property getter_only { @property getter_only {
[[No description supplied.]]
get {} get {}
values { values {
data: int; data: int;
@ -21,6 +25,7 @@ class Property_Holder extends Efl.Object
} }
@property setter_only { @property setter_only {
[[No description supplied.]]
set {} set {}
values { values {
data: int; data: int;
@ -28,6 +33,7 @@ class Property_Holder extends Efl.Object
} }
@property prop_with_key { @property prop_with_key {
[[No description supplied.]]
get {} get {}
set {} set {}
values { values {

View File

@ -1,11 +1,14 @@
class Simple extends Efl.Object class Simple extends Efl.Object
{ {
[[No description supplied.]]
data: null; data: null;
methods { methods {
simple_get { simple_get {
[[No description supplied.]]
return: bool; return: bool;
} }
name_get { name_get {
[[No description supplied.]]
params { params {
@out name: string; @out name: string;
} }