-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Fix ICE with elided lifetimes in return type of foreign functions #43651
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
Wouldn't this break |
7cfa853
to
7704762
Compare
Indeed. I've updated the PR with fix for the underlying elision problem. |
@bors try |
Fix ICE with elided lifetimes in return type of foreign functions cc #43567 This is for a preliminary crater/cargobomb run. Lifetime elision still produces a late-bound lifetime, but it is caught by the same check as catches `type F = for<'a> fn() -> &'a u8` and reported as an error. If the breakage is significant, I'll have to partially revert #43543 (all the stuff that was required for dealing with late bound lifetimes in this position). r? @eddyb
When the try build completes, we can run cargobomb on it. |
☀️ Test successful - status-travis |
cc @tomprince @frewsxcv @Mark-Simulacrum Cargobomb run needed for this PR, try done. |
\o/ thanks for this! I think most of the issues in the wild were with the case of an unbound lifetime. I submitted PRs to fix those (but there may be newer crates since then) |
Triage update: cargobomb in progress |
All regressions are known spurious tests. |
📌 Commit 7704762 has been approved by |
Mostly timeouts and some panics -- why is this causing timeouts? The one build failure is ... weird |
@Manishearth It's not, I've looked at all of those tests in the past and they're just badly written tests, they'll fail randomly. |
lol. I should fix that. what about the build failure? |
would be nice if cargobomb had a "known timeout" functionality |
@Manishearth You can try building the build failure test with a compiler that has this PR applied, if you really want to check. I'd really expect to see a compilation error if it's from this PR. |
If they're known bad tests they should probably go in the blacklist, I only saw a couple in there - https://github.com/rust-lang-nursery/cargobomb/blob/master/blacklist.md |
@aidanhs Ah I didn't realize there was a blacklist. |
@eddyb yeah, i trust this PR isn't changing behavior |
Fix ICE with elided lifetimes in return type of foreign functions cc #43567 This is for a preliminary crater/cargobomb run. Lifetime elision in foreign functions now works exactly like in other functions or function-like entities. If the breakage is significant, I'll have to partially revert #43543 (all the stuff that was required for dealing with late bound lifetimes in this position). r? @eddyb
☀️ Test successful - status-appveyor, status-travis |
cc #43567
This is for a preliminary crater/cargobomb run.
Lifetime elision in foreign functions now works exactly like in other functions or function-like entities.
If the breakage is significant, I'll have to partially revert #43543 (all the stuff that was required for dealing with late bound lifetimes in this position).
r? @eddyb