Uh oh!
There was an error while loading. Please reload this page.
Revamp symbol names for impls (and make them deterministic, etc) - #32293
Conversation
nikomatsakis
commented
Mar 16, 2016
Note that the review is technically only for my comments, not mw's, but of course feel free to comment on those too and I'll patch up any nits or whatever. |
There was a problem hiding this comment.
We could pass the original id in the trans::inline path just like MIR.
eddyb
commented
Mar 17, 2016
LGTM, except for the nits, some of which GitHub is marking as being on an outdated diff. |
bors
commented
Mar 18, 2016
☔ The latest upstream changes (presumably #32080) made this pull request unmergeable. Please resolve the merge conflicts. |
There was a problem hiding this comment.
This name and others should end with an 'E' to close the nested name that was started with the 'N'.
There was a problem hiding this comment.
On Sat, Mar 19, 2016 at 04:01:27PM -0700, Michael Woerister wrote:
+#[rustc_symbol_name] //~ ERROR _ZN5basic4main
This name and others should end with an 'E' to close the
nested namethat was started with the 'N'.
The names do end with E. I just left that out of the test because I didn't want to put the hash in there.
michaelwoerister
commented
Mar 19, 2016
Looks good to me too. Consolidating path rendering into its own module is a good idea and it's great that we'll be testing symbol names from now on. Looking forward to tinkering with the name mangling scheme. |
3214c33 to
bdfc0b4Comparenikomatsakis
commented
Mar 21, 2016
Rebased. Some of the poor @michaelwoerister's beautifully clean commit history got a bit messed up (I suspect the individual commits no longer build), but seems to build locally. Not yet finished with |
nikomatsakis
commented
Mar 21, 2016
@bors r=eddyb |
bors
commented
Mar 21, 2016
📌 Commit 8786477 has been approved by |
8786477 to
09574bdComparenikomatsakis
commented
Mar 21, 2016
@bors r- |
nikomatsakis
commented
Mar 21, 2016
Does this just mean removing the comment on the test? If so, I did that in the most recent commit. |
nikomatsakis
commented
Mar 21, 2016
@bors r=eddyb |
bors
commented
Mar 21, 2016
📌 Commit ea70d16 has been approved by |
bors
commented
Mar 22, 2016
⌛ Testing commit ea70d16 with merge dec92c1... |
bors
commented
Mar 22, 2016
💔 Test failed - auto-mac-64-nopt-t |
nikomatsakis
commented
Mar 22, 2016
@bors r=eddyb |
bors
commented
Mar 22, 2016
📌 Commit 4eadadf has been approved by |
nikomatsakis
commented
Mar 22, 2016
question to @alexcrichton -- do you know if the windows builders have |
8cfc003 to
726ba66Comparenikomatsakis
commented
Mar 25, 2016
@bors r=alexcrichton |
bors
commented
Mar 25, 2016
📌 Commit 726ba66 has been approved by |
nikomatsakis
commented
Mar 25, 2016
@bors p=1 |
nikomatsakis
commented
Mar 25, 2016
(This PR has been hanging around way too long.) |
bors
commented
Mar 25, 2016
⌛ Testing commit 726ba66 with merge 07ee0ed... |
bors
commented
Mar 25, 2016
💔 Test failed - auto-win-gnu-64-nopt-t |
nikomatsakis
commented
Mar 25, 2016
@bors r=alexcrichton |
bors
commented
Mar 25, 2016
📌 Commit 874574d has been approved by |
nikomatsakis
commented
Mar 25, 2016
@bors force |
bors
commented
Mar 25, 2016
⌛ Testing commit 874574d with merge 0f50c0d... |
bors
commented
Mar 25, 2016
💔 Test failed - auto-win-gnu-64-nopt-t |
nikomatsakis
commented
Mar 25, 2016
@bors r=alexcrichton |
bors
commented
Mar 25, 2016
📌 Commit 1ea93c2 has been approved by |
bors
commented
Mar 26, 2016
…xcrichton Revamp symbol names for impls (and make them deterministic, etc) This builds on @michaelwoerister's epic PR #31539 (note that his PR never landed, so I just incorporated it into this one). The main change here is that we remove the "name" from `DefPathData` for impls, since that name is synthetic and not sufficiently predictable for incr comp. However, just doing that would cause bad symbol names since those are based on the `DefPath`. Therefore, I introduce a new mechanism for getting symbol names (and also paths for user display) called `item_path`. This is kind of simplistic for now (based on strings) but I expect to expand it later to support richer types, hopefully generating C++-mangled names that gdb etc can understand. Along the way I cleaned up how we track the path that leads to an extern crate. There is still some cleanup left undone here. Notably, I didn't remove the impl names altogether -- that would probably make sense. I also didn't try to remove the `item_symbols` vector. Mostly I want to unblock my other incr. comp. work. =) r? @eddyb cc @eddyb@alexcrichton@michaelwoerister
This builds on @michaelwoerister's epic PR #31539 (note that his PR never landed, so I just incorporated it into this one). The main change here is that we remove the "name" from
DefPathDatafor impls, since that name is synthetic and not sufficiently predictable for incr comp. However, just doing that would cause bad symbol names since those are based on theDefPath. Therefore, I introduce a new mechanism for getting symbol names (and also paths for user display) calleditem_path. This is kind of simplistic for now (based on strings) but I expect to expand it later to support richer types, hopefully generating C++-mangled names that gdb etc can understand. Along the way I cleaned up how we track the path that leads to an extern crate.There is still some cleanup left undone here. Notably, I didn't remove the impl names altogether -- that would probably make sense. I also didn't try to remove the
item_symbolsvector. Mostly I want to unblock my other incr. comp. work. =)r? @eddyb
cc @eddyb@alexcrichton@michaelwoerister