| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
Decompose Adjustment into smaller steps and remove the method map.
The method map held method callee information for:
* actual method calls (`x.f(...)`)
* overloaded unary, binary, indexing and call operators
* *every overloaded deref adjustment* (many can exist for each expression)
That last one was a historical ~~accident~~ hack, and part of the motivation for this PR, along with:
* a desire to compose adjustments more freely
* containing the autoderef logic better to avoid mutation within an inference snapshot
* not creating `TyFnDef` types which are incompatible with the original one
* i.e. we used to take a`TyFnDef`'s `for<'a> &'a T -> &'a U` signature and instantiate `'a` using a region inference variable, *then* package the resulting `&'b T -> &'b U` signature in another `TyFnDef`, while keeping *the same* `DefId` and `Substs`
* to fix #3548 by explicitly writing autorefs for the RHS of comparison operators
Individual commits tell their own story, of "atomic" changes avoiding breaking semantics.
Future work based on this PR could include:
* removing the signature from `TyFnDef`, now that it's always "canonical"
* some questions of variance remain, as subtyping *still* treats the signature differently
* moving part of the typeck logic for methods, autoderef and coercion into `rustc::traits`
* allowing LUB coercions (joining multiple expressions) to "stack up" many adjustments
* transitive coercions (e.g. reify or unsize after multiple steps of autoderef)
r? @nikomatsakis
|
|
|
|
|
|
These files are licensed under a different license
than the rest of the codebase. This causes potential
issues and inconveniences.
Relicense these files under the standard license.
I hold original copyright on that code.
Fixes #36556
|
|
Correct some stability versions
These were found by running tidy on stable versions of rust and finding
features stabilised with the wrong version numbers.
|
|
These were found by running tidy on stable versions of rust and finding
features stabilised with the wrong version numbers.
|
|
|
|
|
|
Also remove some unnecessary unsafe impl from the tests.
|
|
|
|
|
|
Channel error docs
r? @steveklabnik
I'm going to need some help on this one, a few ambiguities.
|
|
Presumably `N` was supposed to be used in both places.
|
|
documentation to channel() and sync_channel(); adding more links #29377
|
|
Add links and some examples to std::sync::mpsc docs
Addresses part of #29377
r? @steveklabnik
I took a stab at adding links to the `std::sync::mpsc` docs, and I also wrote a few examples.
Edit: Whoops, typed in `?r` instead of `r?`.
|
|
Updating the description for BarrierWaitResult #29377
Referencing `Barrier`, removing reference to `is_leader`.
|
|
Fix mutex's docs inconsistency
Fixes #40176.
r? @steveklabnik
cc @rust-lang/docs
|
|
|
|
|
|
|
|
|
|
This change adds links to to `Receiver`, `Iter`, `TryIter`, `IntoIter`,
`Sender`, `SyncSender`, `SendError`, `RecvError`, `TryRecvError`,
`RecvTimeoutError`, `TrySendError`, `Sender::send`, `SyncSender::send`,
`SyncSender::try_send`, `Receiver::recv`, `Receiver::recv_timeout`,
`Receiver::iter`, and `Receiver::try_iter`.
Examples added to `Receiver`, `Sender`, `Receiver::iter`.
|
|
|
|
|
|
|
|
Fix typo in mutex.rs docs
This seems to match other uses of "be accessed" in the document.
|
|
This seems to match other uses of "be accessed" in the document.
|
|
This was never established as a convention we should follow in the 'More
API Documentation Conventions' RFC:
https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md
|
|
Add missing urls and examples for Condvar docs
r? @frewsxcv
|
|
Add missing urls in MutexGuard docs
r? @frewsxcv
|
|
|
|
|
|
|
|
|
|
Fix a few impl stability attributes
The versions show up in rustdoc.
|
|
|
|
The versions show up in rustdoc.
|
|
|
|
CC #34761
|
|
Implement `fmt::Debug` for all structures in libstd.
Part of https://github.com/rust-lang/rust/issues/31869.
Also turn on the `missing_debug_implementations` lint at the crate
level.
|
|
Replace invalid use of `&mut` with `UnsafeCell` in `std::sync::mpsc`
Closes #36934
r? @alexcrichton
|
|
Part of https://github.com/rust-lang/rust/issues/31869.
Also turn on the `missing_debug_implementations` lint at the crate
level.
|
|
Closes #36934
|
|
|
|
Closes #37915
This commit enhances documentation with several links and
fixes an error in the `sync_channel` documentation as well:
`send` doesn't panic when the senders are all disconnected
|
|
Document how lock 'guard' structures are created.
|
|
Also, end sentence with a period.
|
|
|