1. properly use unittest infra to skip tests, otherwise we will
forgot the commented tests
2. split the new name collision test (failing, but really cool)
so it have a proper name and the results are more readable
Summary:
There is still a test failing as at least Ecore.Audio is both a
namespace and a class.
Test Plan: python test_pyolian.py
Reviewers: DaveMDS, q66
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7371
Eolian now separates 'parent' and 'extensions'. For regular
classes, parent is the first item in the inherits list and
extesions is the rest. For interfaces and mixins, parent is
NULL and extends is the inherits list.
The reason for this is the separation of them in syntax in near
future. It also slightly changes the behavior; since for interfaces
and mixins, parent is always NULL now, you can freely inherit from
all types of classes without needing to manually put an interface
type as the first item of the inherits list.
Doc refs no longer introduce new dependencies into files. Instead,
they're parsed globally, and any doc ref lookup is also made
globally. This allows unit based dependencies to correspond more
to what files actually really need at compile time/runtime, with
docs being irrelevant to that; it also simplifies the API.
The doc resolution API now takes Eolian_State instead of
Eolian_Unit, too.
This is useless in py as Objects are never returned
directly, you always get the correct subtype (Class,
Variable, etc..). It was also clashing with Class.type
Two of the new tests are failing, the problem is that now
we have name clashes between Eolian_Object and Eolian_Class (at least)
For the moment I spotted:
- Object.name clash with Class.name
- Object.type clash with Class.type
Also fixed a typo in eolian_lib.py spotted by the new tests,
and removed the old tests for Declaration.
I still think that namespaces should be directly exposed by eolian.
Currently pyolian provide a namespace implementation but it's
hard to get it right, and it should be really shared between
all eolian users.
As it is no longer necessary to pass unit when evaluating exprs,
it is not necessary to pass it here either. Convert all the APIs
to the new style and update all instances in our tree.