forked from enlightenment/efl
eolian: rename @warn_unused and its associated API
@warn_unused in syntax is now called @no_unused - this is because "warning about unused" is a C thing (or rather, an extension to C) and various languages might want to use stricter behavior for this. Its associated API does the reverse now - it lets you query whether being unused is allowed at all. This is to match future behavior of Eolian (once it supports versioning) that will likely reverse it. @feature
This commit is contained in:
parent
d0fed247bb
commit
13ddc5dbc1
|
@ -160,7 +160,7 @@ _gen_func(const Eolian_State *state, const Eolian_Function *fid,
|
||||||
eina_strbuf_append(buf, "void");
|
eina_strbuf_append(buf, "void");
|
||||||
|
|
||||||
eina_strbuf_append(buf, ")");
|
eina_strbuf_append(buf, ")");
|
||||||
if (eolian_function_return_is_warn_unused(fid, ftype))
|
if (!eolian_function_return_allow_unused(fid, ftype))
|
||||||
{
|
{
|
||||||
if (!flagbuf)
|
if (!flagbuf)
|
||||||
flagbuf = eina_strbuf_new();
|
flagbuf = eina_strbuf_new();
|
||||||
|
|
|
@ -373,7 +373,7 @@ ffi.cdef [[
|
||||||
const Eolian_Type *eolian_function_return_type_get(const Eolian_Function *function_id, Eolian_Function_Type ftype);
|
const Eolian_Type *eolian_function_return_type_get(const Eolian_Function *function_id, Eolian_Function_Type ftype);
|
||||||
const Eolian_Expression *eolian_function_return_default_value_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
const Eolian_Expression *eolian_function_return_default_value_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
||||||
const Eolian_Documentation *eolian_function_return_documentation_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
const Eolian_Documentation *eolian_function_return_documentation_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
||||||
Eina_Bool eolian_function_return_is_warn_unused(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
Eina_Bool eolian_function_return_allow_unused(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
||||||
Eina_Bool eolian_function_object_is_const(const Eolian_Function *function_id);
|
Eina_Bool eolian_function_object_is_const(const Eolian_Function *function_id);
|
||||||
const Eolian_Class *eolian_function_class_get(const Eolian_Function *function_id);
|
const Eolian_Class *eolian_function_class_get(const Eolian_Function *function_id);
|
||||||
const Eolian_Class *eolian_implement_class_get(const Eolian_Implement *impl);
|
const Eolian_Class *eolian_implement_class_get(const Eolian_Implement *impl);
|
||||||
|
@ -1214,8 +1214,8 @@ M.Function = ffi.metatype("Eolian_Function", {
|
||||||
return v
|
return v
|
||||||
end,
|
end,
|
||||||
|
|
||||||
return_is_warn_unused = function(self, ftype)
|
return_allow_unused = function(self, ftype)
|
||||||
return eolian.eolian_function_return_is_warn_unused(self,
|
return eolian.eolian_function_return_allow_unused(self,
|
||||||
ftype) ~= 0
|
ftype) ~= 0
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
|
|
@ -308,7 +308,7 @@ class @beta Efl.Io.Copier extends Efl.Loop_Consumer implements Efl.Io.Closer {
|
||||||
which case you should wait for "done", "data" or "line"
|
which case you should wait for "done", "data" or "line"
|
||||||
events and then call it to retrieve and own the data.
|
events and then call it to retrieve and own the data.
|
||||||
]]
|
]]
|
||||||
return: ptr(Eina.Binbuf) @owned @warn_unused; [[Binbuf]]
|
return: ptr(Eina.Binbuf) @owned @no_unused; [[Binbuf]]
|
||||||
}
|
}
|
||||||
|
|
||||||
@property pending_size {
|
@property pending_size {
|
||||||
|
|
|
@ -187,7 +187,7 @@ class @beta Efl.Net.Dialer_Http extends Efl.Loop_Consumer implements Efl.Net.Dia
|
||||||
|
|
||||||
request_headers_get {
|
request_headers_get {
|
||||||
[[Returns an iterator to the key-value pairs for request headers]]
|
[[Returns an iterator to the key-value pairs for request headers]]
|
||||||
return: iterator<ptr(Efl.Net.Http.Header)> @owned @warn_unused; [[Iterator for request headers]]
|
return: iterator<ptr(Efl.Net.Http.Header)> @owned @no_unused; [[Iterator for request headers]]
|
||||||
}
|
}
|
||||||
|
|
||||||
@property request_content_length {
|
@property request_content_length {
|
||||||
|
@ -250,7 +250,7 @@ class @beta Efl.Net.Dialer_Http extends Efl.Loop_Consumer implements Efl.Net.Dia
|
||||||
|
|
||||||
This will be usable after the "headers,done" event is dispatched.
|
This will be usable after the "headers,done" event is dispatched.
|
||||||
]]
|
]]
|
||||||
return: iterator<ptr(Efl.Net.Http.Header)> @owned @warn_unused; [[Iterator for response headers]]
|
return: iterator<ptr(Efl.Net.Http.Header)> @owned @no_unused; [[Iterator for response headers]]
|
||||||
}
|
}
|
||||||
|
|
||||||
response_headers_all_get {
|
response_headers_all_get {
|
||||||
|
@ -275,7 +275,7 @@ class @beta Efl.Net.Dialer_Http extends Efl.Loop_Consumer implements Efl.Net.Dia
|
||||||
|
|
||||||
This will be usable after the "headers,done" event is dispatched.
|
This will be usable after the "headers,done" event is dispatched.
|
||||||
]]
|
]]
|
||||||
return: iterator<ptr(Efl.Net.Http.Header)> @owned @warn_unused; [[Iterator for all response headers]]
|
return: iterator<ptr(Efl.Net.Http.Header)> @owned @no_unused; [[Iterator for all response headers]]
|
||||||
}
|
}
|
||||||
|
|
||||||
response_headers_clear {
|
response_headers_clear {
|
||||||
|
@ -381,7 +381,7 @@ class @beta Efl.Net.Dialer_Http extends Efl.Loop_Consumer implements Efl.Net.Dia
|
||||||
params {
|
params {
|
||||||
epochtime: int64; [[UNIX Epoch time - seconds since 1/1/1970]]
|
epochtime: int64; [[UNIX Epoch time - seconds since 1/1/1970]]
|
||||||
}
|
}
|
||||||
return: mstring @owned @warn_unused; [[Newly allocated null-terminated string on success or NULL on errors]]
|
return: mstring @owned @no_unused; [[Newly allocated null-terminated string on success or NULL on errors]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -144,7 +144,7 @@ class @beta Efl.Net.Dialer_Websocket extends Efl.Loop_Consumer implements Efl.Ne
|
||||||
|
|
||||||
request_protocols_get {
|
request_protocols_get {
|
||||||
[[Returns an iterator to the requested WebSocket protocols]]
|
[[Returns an iterator to the requested WebSocket protocols]]
|
||||||
return: iterator<string> @owned @warn_unused; [[Iterator to protocols]]
|
return: iterator<string> @owned @no_unused; [[Iterator to protocols]]
|
||||||
}
|
}
|
||||||
|
|
||||||
request_protocols_clear {
|
request_protocols_clear {
|
||||||
|
@ -153,7 +153,7 @@ class @beta Efl.Net.Dialer_Websocket extends Efl.Loop_Consumer implements Efl.Ne
|
||||||
|
|
||||||
response_protocols_get {
|
response_protocols_get {
|
||||||
[[Returns an iterator to the server-replied (response) WebSocket protocols it supports]]
|
[[Returns an iterator to the server-replied (response) WebSocket protocols it supports]]
|
||||||
return: iterator<string> @owned @warn_unused; [[Iterator to server protocols]]
|
return: iterator<string> @owned @no_unused; [[Iterator to server protocols]]
|
||||||
}
|
}
|
||||||
|
|
||||||
@property streaming_mode {
|
@property streaming_mode {
|
||||||
|
@ -260,7 +260,7 @@ class @beta Efl.Net.Dialer_Websocket extends Efl.Loop_Consumer implements Efl.Ne
|
||||||
|
|
||||||
request_headers_get {
|
request_headers_get {
|
||||||
[[Returns an iterator to the key-value pairs for request headers]]
|
[[Returns an iterator to the key-value pairs for request headers]]
|
||||||
return: iterator<ptr(Efl.Net.Http.Header)> @owned @warn_unused; [[Iterator to key value pairs]]
|
return: iterator<ptr(Efl.Net.Http.Header)> @owned @no_unused; [[Iterator to key value pairs]]
|
||||||
}
|
}
|
||||||
|
|
||||||
@property cookie_jar {
|
@property cookie_jar {
|
||||||
|
|
|
@ -20,7 +20,7 @@ class @beta Ector.Cairo.Surface extends Efl.Object implements Ector.Surface
|
||||||
}
|
}
|
||||||
symbol_get {
|
symbol_get {
|
||||||
[[Lookup symbal name in cairo lib]]
|
[[Lookup symbal name in cairo lib]]
|
||||||
return: void_ptr @warn_unused; [[Pointer to cairo lib with this symbol]]
|
return: void_ptr @no_unused; [[Pointer to cairo lib with this symbol]]
|
||||||
params {
|
params {
|
||||||
@in name: string; [[Symbol name]]
|
@in name: string; [[Symbol name]]
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ mixin @beta Ector.Buffer
|
||||||
map should try to convert the data into a new buffer]]
|
map should try to convert the data into a new buffer]]
|
||||||
@out stride: uint @optional; [[Returns the length in bytes of a mapped line]]
|
@out stride: uint @optional; [[Returns the length in bytes of a mapped line]]
|
||||||
}
|
}
|
||||||
return: void_ptr @warn_unused; [[Pointer to the top-left pixel data. Returns $null in case of failure]]
|
return: void_ptr @no_unused; [[Pointer to the top-left pixel data. Returns $null in case of failure]]
|
||||||
}
|
}
|
||||||
unmap @pure_virtual {
|
unmap @pure_virtual {
|
||||||
[[Unmap a region of this buffer, and upload data to the GPU (if needed).]]
|
[[Unmap a region of this buffer, and upload data to the GPU (if needed).]]
|
||||||
|
|
|
@ -51,7 +51,7 @@ interface Efl.Canvas.Scene
|
||||||
Warning: This function will only evaluate top-level objects; child
|
Warning: This function will only evaluate top-level objects; child
|
||||||
or "sub" objects will be skipped.
|
or "sub" objects will be skipped.
|
||||||
]]
|
]]
|
||||||
return: iterator<Efl.Gfx.Entity> @owned @warn_unused; [[
|
return: iterator<Efl.Gfx.Entity> @owned @no_unused; [[
|
||||||
The list of objects that are over the given position in $e.
|
The list of objects that are over the given position in $e.
|
||||||
]]
|
]]
|
||||||
params {
|
params {
|
||||||
|
@ -78,7 +78,7 @@ interface Efl.Canvas.Scene
|
||||||
Warning: This function will only evaluate top-level objects; child
|
Warning: This function will only evaluate top-level objects; child
|
||||||
or "sub" objects will be skipped.
|
or "sub" objects will be skipped.
|
||||||
]]
|
]]
|
||||||
return: Efl.Gfx.Entity @warn_unused; [[The canvas object that is over all other objects at the given position.]]
|
return: Efl.Gfx.Entity @no_unused; [[The canvas object that is over all other objects at the given position.]]
|
||||||
params {
|
params {
|
||||||
@in pos: Eina.Position2D; [[The pixel position.]]
|
@in pos: Eina.Position2D; [[The pixel position.]]
|
||||||
@in include_pass_events_objects: bool; [[
|
@in include_pass_events_objects: bool; [[
|
||||||
|
@ -103,7 +103,7 @@ interface Efl.Canvas.Scene
|
||||||
Warning: This function will only evaluate top-level objects; child
|
Warning: This function will only evaluate top-level objects; child
|
||||||
or "sub" objects will be skipped.
|
or "sub" objects will be skipped.
|
||||||
]]
|
]]
|
||||||
return: iterator<Efl.Gfx.Entity> @owned @warn_unused; [[Iterator to objects]]
|
return: iterator<Efl.Gfx.Entity> @owned @no_unused; [[Iterator to objects]]
|
||||||
params {
|
params {
|
||||||
@in rect: Eina.Rect; [[The rectangular region.]]
|
@in rect: Eina.Rect; [[The rectangular region.]]
|
||||||
@in include_pass_events_objects: bool; [[
|
@in include_pass_events_objects: bool; [[
|
||||||
|
@ -129,7 +129,7 @@ interface Efl.Canvas.Scene
|
||||||
Warning: This function will only evaluate top-level objects; child
|
Warning: This function will only evaluate top-level objects; child
|
||||||
or "sub" objects will be skipped.
|
or "sub" objects will be skipped.
|
||||||
]]
|
]]
|
||||||
return: Efl.Gfx.Entity @warn_unused; [[
|
return: Efl.Gfx.Entity @no_unused; [[
|
||||||
The object that is over all other objects at the given
|
The object that is over all other objects at the given
|
||||||
rectangular region.
|
rectangular region.
|
||||||
]]
|
]]
|
||||||
|
|
|
@ -12,7 +12,7 @@ interface Efl.Container
|
||||||
methods {
|
methods {
|
||||||
content_iterate {
|
content_iterate {
|
||||||
[[Begin iterating over this object's contents.]]
|
[[Begin iterating over this object's contents.]]
|
||||||
return: iterator<Efl.Gfx.Entity> @owned @warn_unused; [[Iterator on object's content.]]
|
return: iterator<Efl.Gfx.Entity> @owned @no_unused; [[Iterator on object's content.]]
|
||||||
}
|
}
|
||||||
content_count {
|
content_count {
|
||||||
[[Returns the number of contained sub-objects.]]
|
[[Returns the number of contained sub-objects.]]
|
||||||
|
|
|
@ -46,8 +46,8 @@ interface Efl.Gfx.Stack
|
||||||
objects on layers below the one $obj is placed at.
|
objects on layers below the one $obj is placed at.
|
||||||
|
|
||||||
See also @.layer.get(), @.layer.set() and @.below.get()]]
|
See also @.layer.get(), @.layer.set() and @.below.get()]]
|
||||||
return: Efl.Gfx.Stack @warn_unused; [[The @Efl.Gfx.Stack object directly below $obj, if any,
|
return: Efl.Gfx.Stack @no_unused; [[The @Efl.Gfx.Stack object directly below $obj, if any,
|
||||||
or $null, if none.]]
|
or $null, if none.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property above {
|
@property above {
|
||||||
|
@ -58,8 +58,8 @@ interface Efl.Gfx.Stack
|
||||||
objects on layers above the one $obj is placed at.
|
objects on layers above the one $obj is placed at.
|
||||||
|
|
||||||
See also @.layer.get(), @.layer.set() and @.below.get()]]
|
See also @.layer.get(), @.layer.set() and @.below.get()]]
|
||||||
return: Efl.Gfx.Stack @warn_unused; [[The @Efl.Gfx.Stack object directly below $obj, if any,
|
return: Efl.Gfx.Stack @no_unused; [[The @Efl.Gfx.Stack object directly below $obj, if any,
|
||||||
or $null, if none.]]
|
or $null, if none.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stack_below {
|
stack_below {
|
||||||
|
|
|
@ -130,7 +130,7 @@ class @beta Efl.Io.Buffer extends Efl.Object implements Efl.Io.Reader, Efl.Io.Wr
|
||||||
On failure, for example a read-only backing store was
|
On failure, for example a read-only backing store was
|
||||||
adopted with @.adopt_readonly, NULL is returned.
|
adopted with @.adopt_readonly, NULL is returned.
|
||||||
]]
|
]]
|
||||||
return: ptr(Eina.Binbuf) @owned @warn_unused; [[Binbuf]]
|
return: ptr(Eina.Binbuf) @owned @no_unused; [[Binbuf]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ interface @beta Efl.Ui.Menu {
|
||||||
@property items {
|
@property items {
|
||||||
get {
|
get {
|
||||||
[[Returns a list of the widget item.]]
|
[[Returns a list of the widget item.]]
|
||||||
return: iterator<Efl.Ui.Item> @owned @warn_unused; [[Iterator to widget items]]
|
return: iterator<Efl.Ui.Item> @owned @no_unused; [[Iterator to widget items]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,7 +63,7 @@ mixin @beta Efl.Access.Action
|
||||||
params {
|
params {
|
||||||
@in id: int; [[ID for widget]]
|
@in id: int; [[ID for widget]]
|
||||||
}
|
}
|
||||||
return: mstring @owned @warn_unused; [[Should be freed by the user.]]
|
return: mstring @owned @no_unused; [[Should be freed by the user.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,8 +43,8 @@ class @beta Efl.Ui.Grid extends Efl.Ui.Layout_Base implements
|
||||||
}
|
}
|
||||||
selected_items_get {
|
selected_items_get {
|
||||||
[[Get the selected items iterator. The iterator sequence will be decided by selection.]]
|
[[Get the selected items iterator. The iterator sequence will be decided by selection.]]
|
||||||
return: iterator<Efl.Ui.Grid_Item> @owned @warn_unused; [[Iterator covered by selected items list.
|
return: iterator<Efl.Ui.Grid_Item> @owned @no_unused; [[Iterator covered by selected items list.
|
||||||
user have to free the iterator after used.]]
|
user have to free the iterator after used.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
implements {
|
||||||
|
|
|
@ -34,8 +34,8 @@ class @beta Efl.Ui.List extends Efl.Ui.Layout_Base implements
|
||||||
}
|
}
|
||||||
selected_items_get {
|
selected_items_get {
|
||||||
[[Get the selected items iterator. The iterator sequence will be decided by selection.]]
|
[[Get the selected items iterator. The iterator sequence will be decided by selection.]]
|
||||||
return: iterator<Efl.Ui.List_Item> @owned @warn_unused; [[Iterator covered by selected items list.
|
return: iterator<Efl.Ui.List_Item> @owned @no_unused; [[Iterator covered by selected items list.
|
||||||
user have to free the iterator after used.]]
|
user have to free the iterator after used.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
implements {
|
||||||
|
|
|
@ -100,8 +100,8 @@ static Elm_Code_Syntax _elm_code_syntax_eo =
|
||||||
"abstract", "class", "data", "mixin", "import", "interface", "type", "const", "var", \
|
"abstract", "class", "data", "mixin", "import", "interface", "type", "const", "var", \
|
||||||
"own", "free", "struct", "enum", "@extern", "@free", "@auto", "@empty", \
|
"own", "free", "struct", "enum", "@extern", "@free", "@auto", "@empty", \
|
||||||
"@private", "@protected", "@beta", "@hot", "@const", "@class", "@pure_virtual", \
|
"@private", "@protected", "@beta", "@hot", "@const", "@class", "@pure_virtual", \
|
||||||
"@property", "@nullable", "@optional", "@in", "@out", "@inout", "@warn_unused", \
|
"@property", "@nullable", "@optional", "@in", "@out", "@inout", "@no_unused", \
|
||||||
"eo_prefix", "legacy_prefix", "methods", "events", "params", "return", "legacy", \
|
"c_prefix", "methods", "events", "params", "return", \
|
||||||
"implements", "constructors", "get", "set", "keys", "values", "true", "false", "null"}
|
"implements", "constructors", "get", "set", "keys", "values", "true", "false", "null"}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -348,7 +348,7 @@ abstract Efl.Object
|
||||||
}
|
}
|
||||||
children_iterator_new {
|
children_iterator_new {
|
||||||
[[Get an iterator on all childrens]]
|
[[Get an iterator on all childrens]]
|
||||||
return: iterator<Efl.Object> @owned @warn_unused; [[Children iterator]]
|
return: iterator<Efl.Object> @owned @no_unused; [[Children iterator]]
|
||||||
}
|
}
|
||||||
composite_attach @beta {
|
composite_attach @beta {
|
||||||
[[Make an object a composite object of another.
|
[[Make an object a composite object of another.
|
||||||
|
|
|
@ -1842,11 +1842,11 @@ eolian_function_return_default_value_get(const Eolian_Function *foo_id, Eolian_F
|
||||||
EAPI const Eolian_Documentation *eolian_function_return_documentation_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
EAPI const Eolian_Documentation *eolian_function_return_documentation_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @brief Indicates if a function return is warn-unused.
|
* @brief Indicates if a function return should allow being unused.
|
||||||
*
|
*
|
||||||
* @param[in] function_id id of the function
|
* @param[in] function_id id of the function
|
||||||
* @param[in] ftype type of the function
|
* @param[in] ftype type of the function
|
||||||
* @return EINA_TRUE is warn-unused, EINA_FALSE otherwise.
|
* @return EINA_TRUE if it can be unused, EINA_FALSE otherwise.
|
||||||
*
|
*
|
||||||
* The type of the function is needed because a given function can represent a
|
* The type of the function is needed because a given function can represent a
|
||||||
* property, that can be set and get functions.
|
* property, that can be set and get functions.
|
||||||
|
@ -1855,7 +1855,7 @@ EAPI const Eolian_Documentation *eolian_function_return_documentation_get(const
|
||||||
*
|
*
|
||||||
* @ingroup Eolian
|
* @ingroup Eolian
|
||||||
*/
|
*/
|
||||||
EAPI Eina_Bool eolian_function_return_is_warn_unused(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
EAPI Eina_Bool eolian_function_return_allow_unused(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @brief Indicates if a function object is const.
|
* @brief Indicates if a function object is const.
|
||||||
|
|
|
@ -263,28 +263,28 @@ eolian_function_return_documentation_get(const Eolian_Function *fid, Eolian_Func
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI Eina_Bool
|
EAPI Eina_Bool
|
||||||
eolian_function_return_is_warn_unused(const Eolian_Function *fid,
|
eolian_function_return_allow_unused(const Eolian_Function *fid,
|
||||||
Eolian_Function_Type ftype)
|
Eolian_Function_Type ftype)
|
||||||
{
|
{
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_TRUE);
|
||||||
EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_UNRESOLVED, EINA_FALSE);
|
EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_UNRESOLVED, EINA_TRUE);
|
||||||
EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_PROPERTY, EINA_FALSE);
|
EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_PROPERTY, EINA_TRUE);
|
||||||
switch (ftype)
|
switch (ftype)
|
||||||
{
|
{
|
||||||
case EOLIAN_METHOD:
|
case EOLIAN_METHOD:
|
||||||
if (fid->type != EOLIAN_METHOD)
|
if (fid->type != EOLIAN_METHOD)
|
||||||
return EINA_FALSE;
|
return EINA_TRUE;
|
||||||
return fid->get_return_warn_unused;
|
return !fid->get_return_no_unused;
|
||||||
case EOLIAN_PROP_GET:
|
case EOLIAN_PROP_GET:
|
||||||
if ((fid->type != EOLIAN_PROP_GET) && (fid->type != EOLIAN_PROPERTY))
|
if ((fid->type != EOLIAN_PROP_GET) && (fid->type != EOLIAN_PROPERTY))
|
||||||
return EINA_FALSE;
|
return EINA_TRUE;
|
||||||
return fid->get_return_warn_unused;
|
return !fid->get_return_no_unused;
|
||||||
case EOLIAN_PROP_SET:
|
case EOLIAN_PROP_SET:
|
||||||
if ((fid->type != EOLIAN_PROP_SET) && (fid->type != EOLIAN_PROPERTY))
|
if ((fid->type != EOLIAN_PROP_SET) && (fid->type != EOLIAN_PROPERTY))
|
||||||
return EINA_FALSE;
|
return EINA_TRUE;
|
||||||
return fid->set_return_warn_unused;
|
return !fid->set_return_no_unused;
|
||||||
default:
|
default:
|
||||||
return EINA_FALSE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,9 +35,9 @@ enum Tokens
|
||||||
\
|
\
|
||||||
KWAT(auto), KWAT(beta), KWAT(c_name), KWAT(class), KWAT(const), KWAT(cref), \
|
KWAT(auto), KWAT(beta), KWAT(c_name), KWAT(class), KWAT(const), KWAT(cref), \
|
||||||
KWAT(empty), KWAT(extern), KWAT(free), KWAT(hot), KWAT(in), KWAT(inout), \
|
KWAT(empty), KWAT(extern), KWAT(free), KWAT(hot), KWAT(in), KWAT(inout), \
|
||||||
KWAT(nullable), KWAT(optional), KWAT(out), KWAT(owned), \
|
KWAT(no_unused), KWAT(nullable), KWAT(optional), KWAT(out), KWAT(owned), \
|
||||||
KWAT(private), KWAT(property), KWAT(protected), KWAT(restart), \
|
KWAT(private), KWAT(property), KWAT(protected), KWAT(restart), \
|
||||||
KWAT(pure_virtual), KWAT(warn_unused), \
|
KWAT(pure_virtual), \
|
||||||
\
|
\
|
||||||
KW(byte), KW(ubyte), KW(char), KW(short), KW(ushort), KW(int), KW(uint), \
|
KW(byte), KW(ubyte), KW(char), KW(short), KW(ushort), KW(int), KW(uint), \
|
||||||
KW(long), KW(ulong), KW(llong), KW(ullong), \
|
KW(long), KW(ulong), KW(llong), KW(ullong), \
|
||||||
|
|
|
@ -854,7 +854,7 @@ typedef struct _Eo_Ret_Def
|
||||||
Eolian_Type *type;
|
Eolian_Type *type;
|
||||||
Eolian_Documentation *doc;
|
Eolian_Documentation *doc;
|
||||||
Eolian_Expression *default_ret_val;
|
Eolian_Expression *default_ret_val;
|
||||||
Eina_Bool warn_unused: 1;
|
Eina_Bool no_unused: 1;
|
||||||
Eina_Bool owned: 1;
|
Eina_Bool owned: 1;
|
||||||
} Eo_Ret_Def;
|
} Eo_Ret_Def;
|
||||||
|
|
||||||
|
@ -870,7 +870,7 @@ parse_return(Eo_Lexer *ls, Eo_Ret_Def *ret, Eina_Bool allow_void,
|
||||||
ret->type = parse_type(ls, EINA_TRUE);
|
ret->type = parse_type(ls, EINA_TRUE);
|
||||||
ret->doc = NULL;
|
ret->doc = NULL;
|
||||||
ret->default_ret_val = NULL;
|
ret->default_ret_val = NULL;
|
||||||
ret->warn_unused = EINA_FALSE;
|
ret->no_unused = EINA_FALSE;
|
||||||
ret->owned = EINA_FALSE;
|
ret->owned = EINA_FALSE;
|
||||||
if (allow_def && (ls->t.token == '('))
|
if (allow_def && (ls->t.token == '('))
|
||||||
{
|
{
|
||||||
|
@ -881,12 +881,12 @@ parse_return(Eo_Lexer *ls, Eo_Ret_Def *ret, Eina_Bool allow_void,
|
||||||
ls->expr_mode = EINA_FALSE;
|
ls->expr_mode = EINA_FALSE;
|
||||||
check_match(ls, ')', '(', line, col);
|
check_match(ls, ')', '(', line, col);
|
||||||
}
|
}
|
||||||
Eina_Bool has_warn_unused = EINA_FALSE, has_owned = EINA_FALSE;
|
Eina_Bool has_no_unused = EINA_FALSE, has_owned = EINA_FALSE;
|
||||||
if (!is_funcptr) for (;;) switch (ls->t.kw)
|
if (!is_funcptr) for (;;) switch (ls->t.kw)
|
||||||
{
|
{
|
||||||
case KW_at_warn_unused:
|
case KW_at_no_unused:
|
||||||
CASE_LOCK(ls, warn_unused, "warn_unused qualifier");
|
CASE_LOCK(ls, no_unused, "no_unused qualifier");
|
||||||
ret->warn_unused = EINA_TRUE;
|
ret->no_unused = EINA_TRUE;
|
||||||
eo_lexer_get(ls);
|
eo_lexer_get(ls);
|
||||||
break;
|
break;
|
||||||
case KW_at_owned:
|
case KW_at_owned:
|
||||||
|
@ -1079,7 +1079,7 @@ parse_accessor:
|
||||||
prop->get_ret_type = eo_lexer_type_release(ls, ret.type);
|
prop->get_ret_type = eo_lexer_type_release(ls, ret.type);
|
||||||
prop->get_return_doc = ret.doc;
|
prop->get_return_doc = ret.doc;
|
||||||
prop->get_ret_val = ret.default_ret_val;
|
prop->get_ret_val = ret.default_ret_val;
|
||||||
prop->get_return_warn_unused = ret.warn_unused;
|
prop->get_return_no_unused = ret.no_unused;
|
||||||
prop->get_ret_type->owned = ret.owned;
|
prop->get_ret_type->owned = ret.owned;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1087,7 +1087,7 @@ parse_accessor:
|
||||||
prop->set_ret_type = eo_lexer_type_release(ls, ret.type);
|
prop->set_ret_type = eo_lexer_type_release(ls, ret.type);
|
||||||
prop->set_return_doc = ret.doc;
|
prop->set_return_doc = ret.doc;
|
||||||
prop->set_ret_val = ret.default_ret_val;
|
prop->set_ret_val = ret.default_ret_val;
|
||||||
prop->set_return_warn_unused = ret.warn_unused;
|
prop->set_return_no_unused = ret.no_unused;
|
||||||
prop->set_ret_type->owned = ret.owned;
|
prop->set_ret_type->owned = ret.owned;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1289,7 +1289,7 @@ tags_done:
|
||||||
meth->get_ret_type = eo_lexer_type_release(ls, ret.type);
|
meth->get_ret_type = eo_lexer_type_release(ls, ret.type);
|
||||||
meth->get_return_doc = ret.doc;
|
meth->get_return_doc = ret.doc;
|
||||||
meth->get_ret_val = NULL;
|
meth->get_ret_val = NULL;
|
||||||
meth->get_return_warn_unused = EINA_FALSE;
|
meth->get_return_no_unused = EINA_FALSE;
|
||||||
break;
|
break;
|
||||||
case KW_params:
|
case KW_params:
|
||||||
CASE_LOCK(ls, params, "params definition");
|
CASE_LOCK(ls, params, "params definition");
|
||||||
|
@ -1385,7 +1385,7 @@ body:
|
||||||
meth->get_ret_type = eo_lexer_type_release(ls, ret.type);
|
meth->get_ret_type = eo_lexer_type_release(ls, ret.type);
|
||||||
meth->get_return_doc = ret.doc;
|
meth->get_return_doc = ret.doc;
|
||||||
meth->get_ret_val = ret.default_ret_val;
|
meth->get_ret_val = ret.default_ret_val;
|
||||||
meth->get_return_warn_unused = ret.warn_unused;
|
meth->get_return_no_unused = ret.no_unused;
|
||||||
meth->get_ret_type->owned = ret.owned;
|
meth->get_ret_type->owned = ret.owned;
|
||||||
break;
|
break;
|
||||||
case KW_params:
|
case KW_params:
|
||||||
|
|
|
@ -225,8 +225,8 @@ struct _Eolian_Function
|
||||||
Eolian_Documentation *get_return_doc;
|
Eolian_Documentation *get_return_doc;
|
||||||
Eolian_Documentation *set_return_doc;
|
Eolian_Documentation *set_return_doc;
|
||||||
Eina_Bool obj_is_const :1; /* True if the object has to be const. Useful for a few methods. */
|
Eina_Bool obj_is_const :1; /* True if the object has to be const. Useful for a few methods. */
|
||||||
Eina_Bool get_return_warn_unused :1; /* also used for methods */
|
Eina_Bool get_return_no_unused :1; /* also used for methods */
|
||||||
Eina_Bool set_return_warn_unused :1;
|
Eina_Bool set_return_no_unused :1;
|
||||||
Eina_Bool is_class :1;
|
Eina_Bool is_class :1;
|
||||||
Eina_List *ctor_of;
|
Eina_List *ctor_of;
|
||||||
Eolian_Class *klass;
|
Eolian_Class *klass;
|
||||||
|
|
|
@ -354,7 +354,7 @@ abstract Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.Entity,
|
||||||
|
|
||||||
See also @.clipper.
|
See also @.clipper.
|
||||||
]]
|
]]
|
||||||
return: iterator<Efl.Canvas.Object> @warn_unused; [[An iterator over the
|
return: iterator<Efl.Canvas.Object> @no_unused; [[An iterator over the
|
||||||
list of objects clipped by $obj.]]
|
list of objects clipped by $obj.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -384,7 +384,7 @@ abstract Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.Entity,
|
||||||
clipped_objects_count @const {
|
clipped_objects_count @const {
|
||||||
[[Returns the number of objects clipped by $obj
|
[[Returns the number of objects clipped by $obj
|
||||||
]]
|
]]
|
||||||
return: uint @warn_unused; [[The number of objects clipped by $obj]]
|
return: uint @no_unused; [[The number of objects clipped by $obj]]
|
||||||
}
|
}
|
||||||
key_grab {
|
key_grab {
|
||||||
/* FIXME: can't reference Eolian object, .eo file not being installed */
|
/* FIXME: can't reference Eolian object, .eo file not being installed */
|
||||||
|
@ -411,7 +411,7 @@ abstract Efl.Canvas.Object extends Efl.Loop_Consumer implements Efl.Gfx.Entity,
|
||||||
Warning: Providing impossible modifier sets creates undefined
|
Warning: Providing impossible modifier sets creates undefined
|
||||||
behavior.
|
behavior.
|
||||||
]]
|
]]
|
||||||
return: bool @warn_unused; [[$true if the call succeeded, $false otherwise.]]
|
return: bool @no_unused; [[$true if the call succeeded, $false otherwise.]]
|
||||||
params {
|
params {
|
||||||
@in keyname: string; [[The key to request events for.]]
|
@in keyname: string; [[The key to request events for.]]
|
||||||
@in modifiers: Efl.Input.Modifier; [[A combination of modifier
|
@in modifiers: Efl.Input.Modifier; [[A combination of modifier
|
||||||
|
|
|
@ -19,7 +19,7 @@ abstract @beta Efl.Canvas.Surface extends Efl.Canvas.Image_Internal
|
||||||
[[Set the buffer. If this fails, this function returns $false,
|
[[Set the buffer. If this fails, this function returns $false,
|
||||||
and the surface is left without any attached buffer.
|
and the surface is left without any attached buffer.
|
||||||
]]
|
]]
|
||||||
return: bool @warn_unused; [[$true on success, $false otherwise]]
|
return: bool @no_unused; [[$true on success, $false otherwise]]
|
||||||
}
|
}
|
||||||
values {
|
values {
|
||||||
buffer: void_ptr; [[The external buffer, depends on its type.]]
|
buffer: void_ptr; [[The external buffer, depends on its type.]]
|
||||||
|
|
|
@ -11,7 +11,7 @@ class @beta Efl.Canvas.Vg.Container extends Efl.Canvas.Vg.Node
|
||||||
}
|
}
|
||||||
children_get {
|
children_get {
|
||||||
[[Get all children of container]]
|
[[Get all children of container]]
|
||||||
return: iterator<Efl.Canvas.Vg.Node> @owned @warn_unused; [[Iterator to children]]
|
return: iterator<Efl.Canvas.Vg.Node> @owned @no_unused; [[Iterator to children]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
implements {
|
implements {
|
||||||
|
|
|
@ -925,8 +925,8 @@ class Function(Object):
|
||||||
c_doc = lib.eolian_function_return_documentation_get(self, ftype)
|
c_doc = lib.eolian_function_return_documentation_get(self, ftype)
|
||||||
return Documentation(c_doc) if c_doc else None
|
return Documentation(c_doc) if c_doc else None
|
||||||
|
|
||||||
def return_is_warn_unused(self, ftype):
|
def return_allow_unused(self, ftype):
|
||||||
return bool(lib.eolian_function_return_is_warn_unused(self, ftype))
|
return bool(lib.eolian_function_return_allow_unused(self, ftype))
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def method_return_type(self):
|
def method_return_type(self):
|
||||||
|
|
|
@ -352,9 +352,9 @@ lib.eolian_function_return_default_value_get.restype = c_void_p
|
||||||
lib.eolian_function_return_documentation_get.argtypes = (c_void_p, c_int)
|
lib.eolian_function_return_documentation_get.argtypes = (c_void_p, c_int)
|
||||||
lib.eolian_function_return_documentation_get.restype = c_void_p
|
lib.eolian_function_return_documentation_get.restype = c_void_p
|
||||||
|
|
||||||
# EAPI Eina_Bool eolian_function_return_is_warn_unused(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
# EAPI Eina_Bool eolian_function_return_allow_unused(const Eolian_Function *foo_id, Eolian_Function_Type ftype);
|
||||||
lib.eolian_function_return_is_warn_unused.argtypes = (c_void_p, c_int)
|
lib.eolian_function_return_allow_unused.argtypes = (c_void_p, c_int)
|
||||||
lib.eolian_function_return_is_warn_unused.restype = c_bool
|
lib.eolian_function_return_allow_unused.restype = c_bool
|
||||||
|
|
||||||
# EAPI Eina_Bool eolian_function_object_is_const(const Eolian_Function *function_id);
|
# EAPI Eina_Bool eolian_function_object_is_const(const Eolian_Function *function_id);
|
||||||
lib.eolian_function_object_is_const.argtypes = (c_void_p,)
|
lib.eolian_function_object_is_const.argtypes = (c_void_p,)
|
||||||
|
|
|
@ -368,7 +368,7 @@ class TestEolianFunction(unittest.TestCase):
|
||||||
self.assertEqual(len(list(f.getter_values)), 1)
|
self.assertEqual(len(list(f.getter_values)), 1)
|
||||||
self.assertEqual(len(list(f.getter_values)), 1)
|
self.assertEqual(len(list(f.getter_values)), 1)
|
||||||
self.assertEqual(len(list(f.parameters)), 1)
|
self.assertEqual(len(list(f.parameters)), 1)
|
||||||
self.assertFalse(f.return_is_warn_unused(eolian.Eolian_Function_Type.METHOD))
|
self.assertTrue(f.return_allow_unused(eolian.Eolian_Function_Type.METHOD))
|
||||||
self.assertFalse(f.object_is_const)
|
self.assertFalse(f.object_is_const)
|
||||||
self.assertEqual(f.class_.name, 'Efl.Loop_Timer')
|
self.assertEqual(f.class_.name, 'Efl.Loop_Timer')
|
||||||
self.assertIsInstance(f.implement, eolian.Implement)
|
self.assertIsInstance(f.implement, eolian.Implement)
|
||||||
|
|
|
@ -41,7 +41,7 @@ class Constructor_Method_Class extends Efl.Object
|
||||||
}
|
}
|
||||||
classoutmethod1 {
|
classoutmethod1 {
|
||||||
params { @in one: int; @in two: double; }
|
params { @in one: int; @in two: double; }
|
||||||
return: free(Constructor_Method_Class, eo_unref) @owned @warn_unused;
|
return: free(Constructor_Method_Class, eo_unref) @owned @no_unused;
|
||||||
}
|
}
|
||||||
classoutmethod2 {
|
classoutmethod2 {
|
||||||
params { @in one: int; @in two: double; @out out_class: Constructor_Method_Class @owned; }
|
params { @in one: int; @in two: double; @out out_class: Constructor_Method_Class @owned; }
|
||||||
|
|
|
@ -104,7 +104,7 @@ class Test.Object extends Efl.Object {
|
||||||
}
|
}
|
||||||
method_array_with_42_check {
|
method_array_with_42_check {
|
||||||
[[ tests parameters ]]
|
[[ tests parameters ]]
|
||||||
return: array<int> @owned @warn_unused;
|
return: array<int> @owned @no_unused;
|
||||||
}
|
}
|
||||||
method_array_in_array_out_check {
|
method_array_in_array_out_check {
|
||||||
[[ tests parameters ]]
|
[[ tests parameters ]]
|
||||||
|
@ -157,7 +157,7 @@ class Test.Object extends Efl.Object {
|
||||||
}
|
}
|
||||||
method_list_with_42_check {
|
method_list_with_42_check {
|
||||||
[[ tests parameters ]]
|
[[ tests parameters ]]
|
||||||
return: list<int> @owned @warn_unused;
|
return: list<int> @owned @no_unused;
|
||||||
}
|
}
|
||||||
method_list_in_list_out_check {
|
method_list_in_list_out_check {
|
||||||
[[ tests parameters ]]
|
[[ tests parameters ]]
|
||||||
|
|
Loading…
Reference in New Issue