Merge: Namespace for
authorJean Privat <jean@pryen.org>
Wed, 14 Jan 2015 03:13:38 +0000 (22:13 -0500)
committerJean Privat <jean@pryen.org>
Wed, 14 Jan 2015 03:13:38 +0000 (22:13 -0500)
Better implementation for `full_name` and `c_name` that make them shorter and use the project as the namespace of public entities.

Examples of fullnames of entities used in messages

* A public class `A` defined in the module `m` of the project `p` was `p::m::A`, now it is `p::A`.
* A public method `x` defined in a class `A` in the module `m` of the project `p` was `p::m::A::x`, now it is `p::A::x`

Exeaple of fullnames for entities that are used internally:

* The refinement of `A` in a module `p::n` was `p::n#p::m::A`, now it is `p::n#A`
* The redefinition of `x` in a class `B` in `p::n` was `p::n#p::m::B#p::m::A::x`, now it is `p::n#B#A::x`

The `c_name` get some comparable simplifications, so C identifiers will be simpler and will less overflow in unwind or in valgrind.

Note: please ignore the first commits that come from #1069

Pull-Request: #1092
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>


Trivial merge