-
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 12 pull requests #48399
Rollup of 12 pull requests #48399
Conversation
If the type parameter is Copy or Clone, then `Reverse` should be too.
A new section is added to both both struct and trait doc pages. On struct/enum pages, a new 'Auto Trait Implementations' section displays any synthetic implementations for auto traits. Currently, this is only done for Send and Sync. On trait pages, a new 'Auto Implementors' section displays all types which automatically implement the trait. Effectively, this is a list of all public types in the standard library. Synthesized impls for a particular auto trait ('synthetic impls') take into account generic bounds. For example, a type 'struct Foo<T>(T)' will have 'impl<T> Send for Foo<T> where T: Send' generated for it. Manual implementations of auto traits are also taken into account. If we have the following types: 'struct Foo<T>(T)' 'struct Wrapper<T>(Foo<T>)' 'unsafe impl<T> Send for Wrapper<T>' // pretend that Wrapper<T> makes this sound somehow Then Wrapper will have the following impl generated: 'impl<T> Send for Wrapper<T>' reflecting the fact that 'T: Send' need not hold for 'Wrapper<T>: Send' to hold Lifetimes, HRTBS, and projections (e.g. '<T as Iterator>::Item') are taken into account by synthetic impls However, if a type can *never* implement a particular auto trait (e.g. 'struct MyStruct<T>(*const T)'), then a negative impl will be generated (in this case, 'impl<T> !Send for MyStruct<T>') All of this means that a user should be able to copy-paste a synthetic impl into their code, without any observable changes in behavior (assuming the rest of the program remains unchanged).
This removes the implicit dependency on the iteration order of FxHashMap
Current document takes 2^4, which is equal to 4^2. This example is not very helpful for those unfamiliar with math words in English and thus rely on example codes.
Some changes occurred in HTML/CSS. |
r? @frewsxcv (rust_highfive has picked a reviewer for you, use r? to override) |
@bors: r+ p=12 |
📌 Commit 24c17cb has been approved by |
⌛ Testing commit 24c17cb with merge 2b8b4e03735d2d11bc380d326e9601999968fe25... |
💔 Test failed - status-appveyor |
This appears to be a spurious timeout from appveyor. The build appears to have been running normally at the end, but it someone ended up taking more than three hours overall. |
Here's a job from the same build that passed: https://ci.appveyor.com/project/rust-lang/rust/build/1.0.6426/job/9220y2k2k0scys4f It appears to come in just under the time limit (2 hours 57 minutes). |
Then let's retry. @bors: retry |
☀️ Test successful - status-appveyor, status-travis |
extern
blocks asignore
. #48325, Implement implied shortcut links for intra-rustdoc-links #48335, Update .mailmap with my real name #48352, Add missing link for read_line #48354, Fix count usize link typo in docs #48360, Fix rustdoc test ICE #48382, Take 2^5 as examples in document of pow() #48397