Improve name mangling for gdb

Remove __extensions__ from method symbols as well as the meth_XXX. The XXX is
now used to append a few characters at the end of the name of the symbol.

Closes #6602
This commit is contained in:
Alex Crichton 2013-09-02 22:34:37 -07:00
parent 36a4af49e0
commit 7baff57f26
5 changed files with 100 additions and 59 deletions

View file

@ -15,6 +15,6 @@ use ambig_impl_2_lib::me;
trait me {
fn me(&self) -> uint;
}
impl me for uint { fn me(&self) -> uint { *self } } //~ NOTE is `__extensions__::me`
impl me for uint { fn me(&self) -> uint { *self } } //~ NOTE is `me$uint::me`
fn main() { 1u.me(); } //~ ERROR multiple applicable methods in scope
//~^ NOTE is `ambig_impl_2_lib::__extensions__::me`

View file

@ -13,11 +13,11 @@ trait foo {
}
impl foo for ~[uint] {
fn foo(&self) -> int {1} //~ NOTE candidate #1 is `__extensions__::foo`
fn foo(&self) -> int {1} //~ NOTE candidate #1 is `foo$__extensions__::foo`
}
impl foo for ~[int] {
fn foo(&self) -> int {2} //~ NOTE candidate #2 is `__extensions__::foo`
fn foo(&self) -> int {2} //~ NOTE candidate #2 is `foo$__extensions__::foo`
}
fn main() {