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:
Daniel Kolesa 2019-05-26 17:41:22 +02:00
parent d0fed247bb
commit 13ddc5dbc1
30 changed files with 75 additions and 75 deletions

View File

@ -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();

View File

@ -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,

View File

@ -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 {

View File

@ -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]]
} }
} }

View File

@ -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 {

View File

@ -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]]
} }

View File

@ -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).]]

View File

@ -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.
]] ]]

View File

@ -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.]]

View File

@ -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 {

View File

@ -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]]
} }
} }

View File

@ -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]]
} }
} }
} }

View File

@ -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.]]
} }
} }
} }

View File

@ -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 {

View File

@ -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 {

View File

@ -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"}
}; };

View File

@ -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.

View File

@ -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.

View File

@ -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;
} }
} }

View File

@ -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), \

View File

@ -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:

View File

@ -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;

View File

@ -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

View File

@ -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.]]

View File

@ -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 {

View File

@ -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):

View File

@ -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,)

View File

@ -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)

View File

@ -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; }

View File

@ -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 ]]