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)
commit1619f97a902e6c550d216f9362e723b839d03838
treea817251037be4caef03a71bed43825ac24eda491
parent7f7350db6d76eb45f0a3e14aa280566894976f73
parent53623e6ab1c9ea4b299338da3c453218ef5ccedd
Merge: Namespace for

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>