-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Rollup of 17 pull requests #48350
Rollup of 17 pull requests #48350
Conversation
Manishearth
commented
Feb 19, 2018
- Successful merges: rustc_mir: handle all aggregate kinds in, and always run, the deaggregator. #48052, Fix nested impl trait lifetimes #48072, macros: improve struct constructor field hygiene, fix span bug #48082, Improve tuple struct field access hygiene #48083, Error on nested impl Trait and path projections from impl Trait #48084, rustdoc: move manual "extern crate" statements outside automatic "fn main"s in doctests #48106, detect wrong number of args when type-checking a closure #48123, Add Iterator::try_for_each #48157, incr.comp.: Don't keep RefCells in on-disk-cache borrowed in order to allow for recursive invocations. #48185, Allow two-phase borrows of &mut self in ops #48197, inform user where to give a type annotation #48198, incr.comp.: Store DepNode colors in a dense array instead of a hashmap. #48206, Turn feature-gate table into a query so it is covered by dependency tracking. #48208, Overhaul improper_ctypes output #48221, save-analysis: power through bracket mis-counts #48258, Fix broken documentation link. #48314, Implement implied shortcut links for intra-rustdoc-links #48335
- Failed merges:
Instead of creating inference variables for those argument types, use the trait error-reporting code to give a nicer error.
We need two-phase borrows of ops to be in the initial NLL release since without them lots of existing code will break. Fixes rust-lang#48129
…enums This dates back to at least rust-lang#26583. At the time, usize and isize were considered ffi-unsafe to nudge people away from them, but this changed in the aforementioned PR, making it inconsistent to complain about it in enum discriminants. In fact, repr(usize) is probably the best way to interface with `enum Foo : size_t { ... }`.
- Always name the non-FFI-safe - Explain *why* the type is not FFI-safe - Stop vaguely gesturing at structs/enums/unions if the non-FFI-safe types occured in a field. The last part is arguably a regression, but it's minor now that the non-FFI-safe type is actually named. Removing it avoids some code duplication.
The suggestion is unconditional, so following it could lead to further errors. This is already the case for the repr(C) suggestion, which makes this acceptable, though not *good*. Checking up-front whether the suggestion can help would be great but applies more broadly (and would require some refactoring to avoid duplicating the checks).
…objects It's unhelpful since raw pointers to trait objects are also FFI-unsafe and casting to a thin raw pointer loses the vtable. There are working solutions that _involve_ raw pointers but they're too complex to explain in one line and have serious trade offs.
This span covers the whole visibility expression: e.g. `pub (in path)`.
@bors retry appveyor reached time limit :| |
⌛ Testing commit bbea863 with merge a9de713be72100a6aa3ca60aef7e88dc14ce23f4... |
☀️ Test successful - status-appveyor, status-travis |
wtf |
@bors retry |
⌛ Testing commit bbea863 with merge 4ce1b50a783dd3331ddb4d762a5628f90744dbf2... |
☀️ Test successful - status-appveyor, status-travis |
@bors retry |
⌛ Testing commit bbea863 with merge 4073992fd970a672c18bf4f8e621be031bdfe4f9... |
💔 Test failed - status-travis |
@bors retry time limit |
(eddyb's MIR PR is not in the rollup so I'll let that land first) |
💔 Test failed - status-appveyor |
Hmm. Perhaps one of these pull requests negatively affects cycle times? Better to not roll up in that case :| Either that or we're just hitting the limits really often. |