-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
incr compilation struct_defs.rs #44951
Conversation
link to #44924 |
even more confusing, |
another red flag, this one is probably correct: AddLifetimeParameterBound: adding lifetime bound does NOT change type/generics, but does change Predicates |
I completed the tests in the file so that they all pass. Had several "unsure" etc questions, which I marked in the commit messages (as well as the questions I had here). There is also one outstanding FIXME. I'm not sure what to do with the |
|
Btw, opening a PR before it is completely done is common practice here and a good way to get feedback early. |
Is there a way to assert specific DepNodeKinds haven't changed for fields in
I'm going to add a comment, because on its own it looks wrong. Thanks! |
So the thing I am most confused about for
I still don't understand how something that didn't exist in the previous compilation session can have a "clean" Hir! Is it "clean" when it is being first defined? |
Note that the definition does not have a |
68a64ad
to
3badaaa
Compare
removed FIXME and rebased |
3badaaa
to
39e967b
Compare
@michaelwoerister that should pass and be good to go |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, @vitiral! This looks very good. I could not spot anything wrong.
Some comments:
- Is there a reason that the
change_trait_bound_indirectly
case is left out? - The
EmptyStruct
case should be extended with the other struct labels too. - Struct fields are not checked yet, but it looks like the testing infrastructure doesn't support that yet, so it's something for another PR.
Once these comments are addressed, this is good to go!
// fingerprint is stable (i.e. that there are no random influences like memory | ||
// addresses taken into account by the hashing algorithm). This is what we | ||
// normally do between cfail2 and cfail3. | ||
// Note: there is no #[cfg(...)], so this is ALWAYS compiled |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you add the other labels here too? All of them should be unchanged.
Why is that (with red/green)? The |
@arielb1: |
39e967b
to
c5c3614
Compare
@michaelwoerister I ammended the commit with your changes. I also made assertions on |
@bors r+ |
📌 Commit c5c3614 has been approved by |
@vitiral 👍 |
⌛ Testing commit c5c3614 with merge 4c25acc721cfba42466eea531d804b3d6208fb43... |
💔 Test failed - status-travis |
@bors retry looks like it failed again? |
@vitiral: 🔑 Insufficient privileges: and not in try users |
It's still waiting in the queue: https://buildbot2.rust-lang.org/homu/queue/rust |
gotcha, man it takes a long time to run :) I see that several commits are "rolled up" together though, so that is good. |
Yes, it can take quite a while until a change lands. |
incr compilation struct_defs.rs I am prematurely openeing this as I need mentoring help from @michaelwoerister (also pinged @nikomatsakis) First, is this the right approach for these changes? Second, I'm a bit confused by the results so far. - Changing `TupleStructFieldType(i32)` -> `...(u32)` changes only Hir and HirBody, not TypeOfItem - Chaning `TupleStructAddField(i32)` -> `...(i32, u32)` *does* change TypeOfItem This seems wrong. I feel like it should change TypeOfItem in both cases. Is this a bug in incr compilation or is it expected?
☀️ Test successful - status-appveyor, status-travis |
I am prematurely openeing this as I need mentoring help from @michaelwoerister (also pinged @nikomatsakis)
First, is this the right approach for these changes?
Second, I'm a bit confused by the results so far.
TupleStructFieldType(i32)
->...(u32)
changes only Hir and HirBody, not TypeOfItemTupleStructAddField(i32)
->...(i32, u32)
does change TypeOfItemThis seems wrong. I feel like it should change TypeOfItem in both cases. Is this a bug in incr compilation or is it expected?