-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Fix ICE with elided lifetimes in return type of foreign functions #43651
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
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