-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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 21 pull requests #40645
Closed
Closed
Rollup of 21 pull requests #40645
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Point at the immutable local variable when trying to modify one of its fields. Given a file: ```rust struct Foo { pub v: Vec<String> } fn main() { let f = Foo { v: Vec::new() }; f.v.push("cat".to_string()); } ``` present the following output: ``` error: cannot borrow immutable field `f.v` as mutable --> file.rs:7:13 | 6 | let f = Foo { v: Vec::new() }; | - this should be `mut` 7 | f.v.push("cat".to_string()); | ^^^ error: aborting due to previous error ```
Change the wording of mutable borrow on immutable binding from "this should be `mut`" to "consider changing this to `mut f`".
…uct field reordering.
It does not seem valuable to always evaluate the right-hand side here.
Adds a test for issue rust-lang#31946 which was fixed a while ago.
Also update some 128 bit builtins to be panic-free without relying on the const evaluator.
Now it always implies right-alignment, so that padding zeroes are placed after the sign (if any) and before the digits. In other words, it always takes precedence over explicitly specified `[[fill]align]`. This also affects the '#' flag: zeroes are placed after the prefix (0b, 0o, 0x) and before the digits. :05 :<05 :>05 :^05 before |-0001| |-1000| |-0001| |-0100| after |-0001| |-0001| |-0001| |-0001| :#05x :<#05x :>#05x :^#05x before |0x001| |0x100| |000x1| |0x010| after |0x001| |0x001| |0x001| |0x001| Fixes rust-lang#39997 [breaking-change]
Now it always implies right-alignment, so that padding zeroes are placed after the sign (if any) and before the digits. In other words, it always takes precedence over explicitly specified `[[fill]align]`. :06 :<06 :>06 :^06 before |-001.2| |-1.200| |-001.2| |-01.20| after |-001.2| |-001.2| |-001.2| |-001.2|
…[macro_reexport]`) and macros 2.0 exports (`pub use` macro re-exports and `pub macro` (once implemented) at the crate root.
This seems to match other uses of "be accessed" in the document.
…orts, r=nrc Forbid conflicts between macros 1.0 exports and macros 2.0 exports This PR forbids for conflicts between `#[macro_export]`/`#[macro_reexport]` macro exports and `pub use` macro exports. For example, ```rust // crate A: pub use macros::foo; //^ This is allowed today, will be forbidden by this PR. // crate B: extern crate A; // This triggers a confusing error today. use A::foo; // This could refer to refer to either macro export in crate A. ``` r? @nrc
Implemente overflowing_sh* with new unchecked_sh* intrinsics Also update some 128 bit builtins to not rely on the constant evaluator to avoid checked operations. Fixes rust-lang#40508. cc @nagisa, @alexcrichton Note: I still have a build running to see if the 128 bit changes worked (unoptimized builds take *forever* to compile), however at least the overflowing builtins no longer reference `core::panicking::panic`.
add test for nested macro def (rust-lang#31946) Adds a test for issue rust-lang#31946 which was fixed in 1.12.0. Closes rust-lang#31946.
…r, r=nrc macros: improve the `TokenStream` quoter This PR - renames the `TokenStream` quoter from `qquote!` to `quote!`, - uses `$` instead of `unquote` (e.g. `let toks: TokenStream = ...; quote!([$toks])`), - allows unquoting `Token`s as well as `TokenTree`s and `TokenStream`s (fixes rust-lang#39746), and - to preserve syntactic space, requires that `$` be followed by - a single identifier to unquote, or - another `$` to produce a literal `$`. r? @nrc
Library stabilizations for 1.17 Details of the stabilizations are available in the commits. Includes only library stabilizations; there are a couple of compiler stabilizations that should also be done for 1.17. Will need a beta backport, which I will create after approval. r? @alexcrichton
…wsxcv Fix const not displayed in rustdoc Fixes rust-lang#40331. r? @rust-lang/docs
[LLVM 4.0] Add missing debuginfo metadata to globals Fixes rust-lang#40580. cc @rkruppe cc rust-lang#40123
…ion, r=nrc macros: fix regression with `include!()` Fixes rust-lang#40469, a regression when `include!()`ing a `macro_rules!` containing `$crate`. r? @nrc
…excrichton Add a test for issue 34571 Closes rust-lang#34571.
… r=nagisa Parse 0e+10 as a valid floating-point literal Fixes issue rust-lang#40408.
documented order of conversion between u32 an ipv4addr This fixes rust-lang#40118
@bors r+ p=1000 |
Represent function pointers in mir-constants as a Value instead of Item r? @eddyb
📌 Commit d3e5a45 has been approved by |
…uillaumeGomez minor wording tweak to slice::{as_ptr, as_mut_ptr} Per rust-lang#37334, the slice-as-pointer methods mentioned that "modifying the slice may cause its buffer to be reallocated", when in fact modifying the *slice* itself would cause no such change. (It is a borrow, after all!) This is a tweak to the wording of that line to stress it's the *collection* that could cause the buffer to be reallocated. r? @steveklabnik
Fix typo in mutex.rs docs This seems to match other uses of "be accessed" in the document.
…sfackler Fix a spelling error in HashMap documentation, and slightly reword surrounding text for precision Noticed while reading docs just now. It's possible that the prior wording *meant* to state that the seed's randomness depends on the exact instant that the system RNG was created, I guess. But unless there's an API guarantee that this is the case, the wording seems over-precise. Is there a formal API guarantee that would forbid, say, the system RNG from generating all output using the Intel RDRAND instruction? I don't think the quality of output in that case would depend on when the RNG was created. Yet it seems to me like it could well be a valid source of randomness when computing the initial seed. For that reason, tying the randomness of the seed, to the quality of the RNG's output *at the precise instant the seed is computed*, seems less confining. That instantaneous quality level could be determined by the quality at the instant the RNG was created -- but instantaneous quality need not be low for that precise reason.
@bors r+ |
📌 Commit f2d0a1d has been approved by |
⌛ Testing commit f2d0a1d with merge 079cdd8... |
@bors retry |
💔 Test failed - status-travis |
⌛ Testing commit f2d0a1d with merge c76f7c6... |
💔 Test failed - status-appveyor |
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
0
flag works in format! #40241,TokenStream
-based attributes, paths in attribute and derive macro invocations #40346, Implement optimization fuel and re-enable struct field reordering #40377, Specialize Vec::from_elem to use calloc #40409, Add feature gate for rvalue-static-promotion #40441, Point to let when modifying field of immutable variable #40445, Forbid conflicts between macros 1.0 exports and macros 2.0 exports #40509, Implemente overflowing_sh* with new unchecked_sh* intrinsics #40521, add test for nested macro def (#31946) #40523, macros: improve theTokenStream
quoter #40532, Library stabilizations for 1.17 #40538, Fix const not displayed in rustdoc #40564, [LLVM 4.0] Add missing debuginfo metadata to globals #40581, macros: fix regression withinclude!()
#40583, Add a test for issue 34571 #40588, Parse 0e+10 as a valid floating-point literal #40589, documented order of conversion between u32 an ipv4addr #40590, Represent function pointers in mir-constants as a Value instead of Item #40602, minor wording tweak to slice::{as_ptr, as_mut_ptr} #40603, Fix typo in mutex.rs docs #40611, Fix a spelling error in HashMap documentation, and slightly reword surrounding text for precision #40621