-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
Rolling up PRs in the queue #23963
Rolling up PRs in the queue #23963
Conversation
The requirement `T: Send + Sync` only matters if the `Arc` crosses thread boundaries, and that is adequately controlled by the impls of `Send`/`Sync` for `Arc` itself. If `T` doesn't satisfy the bounds, then the `Arc` cannot cross thread boundaries and so everything is still safe (`Arc` just acts like an expensive `Rc`).
The requirements `T: Send` and `T: Send + Sync` for `Mutex` and `RwLock` respectively only matter if those types are shared/sent across thread boundaries, and that is adequately controlled by the impls of `Send`/`Sync` for them. If `T` doesn't satisfy the bounds, then the types cannot cross thread boundaries and so everything is still safe (the two types just act like an expensive `RefCell`).
The requirements `T: Send` only matter if the channel crosses thread boundaries i.e. the `Sender` or `Reciever` are sent across thread boundaries, and which is adequately controlled by the impls of `Send` for them. If `T` doesn't satisfy the bounds, then the types cannot cross thread boundaries and so everything is still safe (the pair of types collectively behave like a `Rc<RefCell<VecDeque>>`, or something of that nature).
reallocation strategy since extend() calls reserve() and/or push() for us.
context private.
… and onto the `UnificationTable`, and renaming/collapsing some methods.
so that it is closer to standalone.
trait matching more tailored. We now detect recursion where the obligations "match" -- meaning basically that they are the same for some substitution of any unbound type variables.
F`, so that if we have `x: &mut FnMut()`, then `x()` is translated to `FnMut::call_mut(&mut *x, ())` rather than `&mut x`. The latter would require `mut x: &mut FnMut()`, which is really a lot of mut. (Actually, the `mut` is normally required except for the special case of a `&mut F` reference, because that's the one case where we distinguish a unique path like `x` from a mutable path.)
Fix example and some text for: `read_line` takes `&mut String` and return `Result` instead `IoResult`.
local only if matches `FUNDAMENTAL(LocalType)`, where `FUNDAMENTAL` includes `&T` and types marked as fundamental (which includes `Box`). Also apply these tests to negative reasoning.
@bors: r+ force On Wed, Apr 1, 2015 at 8:26 PM, bors notifications@github.com wrote:
|
📌 Commit 3555765 has been approved by |
⌛ Testing commit 3555765 with merge 0d35fa1... |
💔 Test failed - auto-win-64-nopt-t |
5f78fe5
to
2df76a5
Compare
@bors: r+ force |
📌 Commit 2df76a5 has been approved by |
⌛ Testing commit 2df76a5 with merge 02aef18... |
💔 Test failed - auto-win-64-nopt-t |
@bors: r+ force |
📌 Commit 557bad8 has been approved by |
⌛ Testing commit 557bad8 with merge cb407be... |
💔 Test failed - auto-win-64-nopt-t |
@bors: r+ force |
📌 Commit e3b7e6c has been approved by |
No description provided.