summaryrefslogtreecommitdiff
path: root/src/lib/eolian (unfollow)
AgeCommit message (Collapse)Author
2019-09-19eolian: return NULL instead of EINA_FALSE on safety checksDaniel Kolesa
2019-09-18eolian: disallow void for out/inout for stable APIDaniel Kolesa
2019-09-17eolian: skip funcs from beta-classes when unimplemented-checkingDaniel Kolesa
2019-09-17eolian: enable unimplemented function errors for stable APIDaniel Kolesa
2019-09-16eolian: drop @ctor_param and the associated APIsDaniel Kolesa
This has been unused for a while, and has been just lingering around the code, so drop it so it doesn't make it into a release.
2019-09-13eolian: support complex monospace syntax $[...]Daniel Kolesa
This is to allow monospace bits with periods, commas and other non-alphabetical characters. Newlines are not supported (they end the block) and escapes are supported (for ]). Fixes T8213.
2019-09-13eolian: Remove the EOLIAN_PROPERTY_DOC_WARN envvarXavi Artigas
This test is now always enabled, so ALL properties should have property-level documentation. Setter and getter docs are optional.
2019-09-10eolian: hard ban usage of ptr() in stable APIDaniel Kolesa
2019-09-10eolian: account for @by_ref when serializing return typesDaniel Kolesa
This fixes cases such as missing const when having a @by_ref return type. The const should not be avoided there because it is not returning the whole type as const, just what the pointer dereferences to.
2019-09-10eolian: consider @by_ref marked elements ownableDaniel Kolesa
2019-09-10eolian: add an optional warning for ptr() usage in stable APIDaniel Kolesa
2019-09-09eolian: remove second parameter for eolian_type_c_type_getDaniel Kolesa
This has been replaced by newer APIs.
2019-09-06eolian: remove @owned keywordDaniel Kolesa
2019-09-06eolian: disallow duplicate entries in requires/composite sectionsDaniel Kolesa
2019-09-06eolian: change composite syntax from block to inheritance sectionDaniel Kolesa
This makes more sense as these are related to inheritance tree. Therefore, change while we still can. Fixes T8183
2019-09-04eolian: make sure to include by_ref in validation of expressionsDaniel Kolesa
2019-09-04eolian: remove the expression eval_type APIDaniel Kolesa
This is unnecessary because for all contexts where type is relevant the validator already makes sure the type and expression match correctly, so you don't ever need to re-validate it. If you are doing a generic case and are not sure, just use MASK_ALL.
2019-09-04eolian: proper error message for @by_ref on pointer typesDaniel Kolesa
2019-09-04eolian: add APIs to get full C types of parameters/returns/fieldsDaniel Kolesa
These are needed because the type itself does not carry all the information it needs to carry (particularly by_ref).
2019-09-03eolian: add support for function pointers in utility APIsDaniel Kolesa
2019-09-03eolian: fix typos in function_return_is_by_refDaniel Kolesa
2019-09-02eolian: move all tests to use the new @move syntax and APIDaniel Kolesa
2019-08-31eolian: fix validation of ownability with hashesDaniel Kolesa
2019-08-31eolian: properly handle non-beta restriction of __undefined_typeDaniel Kolesa
2019-08-31eolian: always validate inner types of complex types for @moveDaniel Kolesa
2019-08-31eolian: add API to check if an inner type of complex type is @moveDaniel Kolesa
This complements the equivalent APIs of parameters and so on. It is not the same as the older type_is_owned API, which applied to everything.
2019-08-31eolian: refactor ownability validation to accommodate new syntaxDaniel Kolesa
This refactors ownability checks so that they're only performed in contexts where @move can be specified, which both helps with performance and enables later removal of ownability info from types themselves.
2019-08-31eolian: validate @by_ref correctnessDaniel Kolesa
The @by_ref qualifier can only be used with value types, to guarantee exactly one level of pointers.
2019-08-30eolian: add API to expose the new @move and @by_ref tagsDaniel Kolesa
2019-08-30eolian: add parsing for @move and @by_refDaniel Kolesa
The @by_ref qualifier is now allowed on parameters, returns and struct fields in the usual qualifier section. It will mean that this type is passed around by reference, and will only be allowed on types that are not already pointer-like. The @move qualifier will replace @owned as one with a clearer meaning. It means "transfer of ownership". It has the same semantics as the current @owned, i.e. on return values it transfers ownership of the value to the caller, on parameters it transfers ownership to the callee (the inverse is the default when not specified). On struct fields, it means the field will transfer together with the struct that contains it.
2019-08-29eolian: disallow legacy keyword in enums in stable apiDaniel Kolesa
This also marks a bunch of users of that as beta, as they were effectively beta.
2019-08-29eolian: reverse keywords '@transfer' and '@by_ref'Daniel Kolesa
The '@transfer' keyword is a clearer replacement for '@owned'. It will be specified on params/returns/... to specify that ownership will be transferred between caller/callee.
2019-08-29eolian: drop @crefDaniel Kolesa
In the end this was just a failed experiment that didn't turn out to be practical. For now, revert back to ptr(const(T)) until a proper replacement for pointer syntax is added.
2019-08-28eolian_aux: this must be recursiveMarcel Hollerbach
Summary: in order to get all callables, this must be recursive, otherwise deeper callables are forgotten. Reviewers: q66 Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9421
2019-08-16eolian: rename is_class api for functions to is_staticDaniel Kolesa
Still needs restriction to classes only etc to be done later. Ref https://phab.enlightenment.org/T8118 Ref https://phab.enlightenment.org/T7675
2019-08-16eolian: rename @class on methods to @staticDaniel Kolesa
Ref https://phab.enlightenment.org/T8118 Ref https://phab.enlightenment.org/T7675
2019-08-16eolian: fix function pointer leak as reported by asanDaniel Kolesa
Ref T8140.
2019-08-09eolian: add an envvar to warn about unimplemented beta funcsDaniel Kolesa
This changes the behavior of the existing env var to only check unimplemented functions in stable APIs by default. Beta checks can be enabled with an additional environment var, so use EOLIAN_CLASS_UNIMPLEMENTED_WARN for stable and EOLIAN_CLASS_UNIMPLEMENTED_BETA_WARN for extra beta checks.
2019-08-05eolian: fix use after free in eolian_databaseDaniel Kolesa
'toscan' is actually a view to 'mpath' memory, so freeing it first would result in use-after-free. This is obviously only in the error branch so it usually does not happen, but fix anyway. CID1403022
2019-08-05eolian: fix false positive use-after-free in parserDaniel Kolesa
The catch here is that check_match results in a long jump under that condition. The static analyzer doesn't know this, so declare intent. CID1402703
2019-08-05eolian: silence return checking in lexerDaniel Kolesa
Coverity CID1396970.
2019-08-05eolian: refactor "dead" codeDaniel Kolesa
This has no functional change but should stop coverity from complaining. CID1382214
2019-08-05eolian: attempt to silence coverity overlapping assignment errorsDaniel Kolesa
While the previous code was I believe correct, coverity still complains about it. Split it into two statements also to declare intent. CID 1402603..1402724
2019-08-01eolian: remove __builtin_free_cbDaniel Kolesa
This has long been unused. If we need to replace this eventually, it should be done correctly.
2019-08-01eolian: disallow ptr() in containers in stable APIDaniel Kolesa
2019-07-30eolian: make strbuf ownableDaniel Kolesa
2019-07-26eolian: allow value types in owning containers (list/array/etc)Daniel Kolesa
2019-07-26eolian: also ban underscore prefixed builtins in stable APIDaniel Kolesa
2019-07-26eolian: ban void_ptr in stable APIsDaniel Kolesa
This required some refactoring in eldbus and tests but otherwise seems good to go.
2019-07-17eolian: remove support for old free() syntaxDaniel Kolesa
Now freefuncs can only be specified on type declarations but not on types themselves. Also remove transitiveness of freefuncs.