-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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 13 pull requests #62960
Rollup of 13 pull requests #62960
Commits on Jun 30, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 962bf69 - Browse repository at this point
Copy the full SHA 962bf69View commit details
Commits on Jul 9, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 5397dfc - Browse repository at this point
Copy the full SHA 5397dfcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 01d93bf - Browse repository at this point
Copy the full SHA 01d93bfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 283f676 - Browse repository at this point
Copy the full SHA 283f676View commit details -
Configuration menu - View commit details
-
Copy full SHA for b62a77b - Browse repository at this point
Copy the full SHA b62a77bView commit details -
Co-Authored-By: Mazdak Farrokhzad <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d0635ee - Browse repository at this point
Copy the full SHA d0635eeView commit details -
Co-Authored-By: Mazdak Farrokhzad <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for bbc9366 - Browse repository at this point
Copy the full SHA bbc9366View commit details -
Co-Authored-By: Mazdak Farrokhzad <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5f7768a - Browse repository at this point
Copy the full SHA 5f7768aView commit details
Commits on Jul 13, 2019
-
allow clippy::unreadable_literal in unicode tables
Also modifies the generation script to emit 2018 edition paths.
Configuration menu - View commit details
-
Copy full SHA for dee3d27 - Browse repository at this point
Copy the full SHA dee3d27View commit details
Commits on Jul 19, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 3427a14 - Browse repository at this point
Copy the full SHA 3427a14View commit details
Commits on Jul 20, 2019
-
Configuration menu - View commit details
-
Copy full SHA for e8a1e73 - Browse repository at this point
Copy the full SHA e8a1e73View commit details -
Configuration menu - View commit details
-
Copy full SHA for 21b502b - Browse repository at this point
Copy the full SHA 21b502bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2e6b13a - Browse repository at this point
Copy the full SHA 2e6b13aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 93de733 - Browse repository at this point
Copy the full SHA 93de733View commit details
Commits on Jul 21, 2019
-
sync with nomicon: raw ptr must be non-dangling and aligned every tim…
…e it is dereferenced
Configuration menu - View commit details
-
Copy full SHA for f502bf7 - Browse repository at this point
Copy the full SHA f502bf7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4081222 - Browse repository at this point
Copy the full SHA 4081222View commit details
Commits on Jul 22, 2019
-
Configuration menu - View commit details
-
Copy full SHA for a7b9246 - Browse repository at this point
Copy the full SHA a7b9246View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9196781 - Browse repository at this point
Copy the full SHA 9196781View commit details
Commits on Jul 23, 2019
-
Configuration menu - View commit details
-
Copy full SHA for f78cd4d - Browse repository at this point
Copy the full SHA f78cd4dView commit details -
libsyntax: factor out file path resolving
This allows the same logic used by `include_X!` macros to be used by `#[doc(include)]`.
Configuration menu - View commit details
-
Copy full SHA for ba78db3 - Browse repository at this point
Copy the full SHA ba78db3View commit details -
Make #[doc(include)] paths behave like other paths
This makes them relative to the containing file instead of the crate root
Configuration menu - View commit details
-
Copy full SHA for 138e08c - Browse repository at this point
Copy the full SHA 138e08cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1cc7c21 - Browse repository at this point
Copy the full SHA 1cc7c21View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8ccf52c - Browse repository at this point
Copy the full SHA 8ccf52cView commit details -
Configuration menu - View commit details
-
Copy full SHA for edb2187 - Browse repository at this point
Copy the full SHA edb2187View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7c42259 - Browse repository at this point
Copy the full SHA 7c42259View commit details -
Apply suggestions from code review
Co-Authored-By: gnzlbg <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for dd5045e - Browse repository at this point
Copy the full SHA dd5045eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 65cf10d - Browse repository at this point
Copy the full SHA 65cf10dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 218ab4c - Browse repository at this point
Copy the full SHA 218ab4cView commit details -
Configuration menu - View commit details
-
Copy full SHA for fe4cdd3 - Browse repository at this point
Copy the full SHA fe4cdd3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 71717b9 - Browse repository at this point
Copy the full SHA 71717b9View commit details
Commits on Jul 24, 2019
-
Add method disambiguation help for trait implementation
Closes rust-lang#51046 Closes rust-lang#40471
Configuration menu - View commit details
-
Copy full SHA for bd8813e - Browse repository at this point
Copy the full SHA bd8813eView commit details -
Configuration menu - View commit details
-
Copy full SHA for be510db - Browse repository at this point
Copy the full SHA be510dbView commit details -
Configuration menu - View commit details
-
Copy full SHA for a93fdfe - Browse repository at this point
Copy the full SHA a93fdfeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4330241 - Browse repository at this point
Copy the full SHA 4330241View commit details -
Configuration menu - View commit details
-
Copy full SHA for 76b1ffa - Browse repository at this point
Copy the full SHA 76b1ffaView commit details -
syntax_ext: Improve and simplify code generated by
#[global_allocator]
Instead of ``` mod allocator_abi { /* methods */ } ``` we now generate ``` const _: () = { /* methods */ } ``` and use `std_path` for paths referring to standard library entities. This way we no longer need to generate `use` and `extern crate` imports, and `#[global_allocator]` starts working inside unnamed blocks.
Configuration menu - View commit details
-
Copy full SHA for bf8fc8a - Browse repository at this point
Copy the full SHA bf8fc8aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6e4f161 - Browse repository at this point
Copy the full SHA 6e4f161View commit details -
Configuration menu - View commit details
-
Copy full SHA for a0c2c64 - Browse repository at this point
Copy the full SHA a0c2c64View commit details -
Configuration menu - View commit details
-
Copy full SHA for c091818 - Browse repository at this point
Copy the full SHA c091818View commit details -
Rollup merge of rust-lang#60938 - jonas-schievink:doc-include-paths, …
…r=petrochenkov rustdoc: make #[doc(include)] relative to the containing file This matches the behavior of other in-source paths like `#[path]` and the `include_X!` macros. Fixes rust-lang#58373 (comment) Also addresses rust-lang#44732 (comment) cc rust-lang#44732 This is still missing a stdsimd change (https://github.com/jonas-schievink/stdsimd/commit/42ed30e0b5fb5e2d11765b5d1e1f36234af85984), so CI will currently fail. I'll land that change once I get initial feedback for this PR.
Configuration menu - View commit details
-
Copy full SHA for 49e111a - Browse repository at this point
Copy the full SHA 49e111aView commit details -
Rollup merge of rust-lang#61890 - golddranks:fix_sanity_check_llvm, r…
…=Dylan-DPC Fix some sanity checks Update: Changes that made it not to work dropped. * Fix `building_llvm` in sanity check * This was subtly broken: we build LLVM if any of the hosts builds LLVM, and not setting the config meant that LLVM is built for that target. Because of filtering away the targets not configured and the semantics of `Iterator::any`, it currently didn't set the `building_llvm` flag even if we indeed build it. * Add `swig` sanity check * This checks whether there is a `swig` executable needed for LLDB.
Configuration menu - View commit details
-
Copy full SHA for a3a4c7c - Browse repository at this point
Copy the full SHA a3a4c7cView commit details -
Rollup merge of rust-lang#62084 - euclio:unicode-table-tweak, r=kennytm
allow clippy::unreadable_literal in unicode tables Also modifies the generation script to emit 2018 edition paths.
Configuration menu - View commit details
-
Copy full SHA for 59fb997 - Browse repository at this point
Copy the full SHA 59fb997View commit details -
Rollup merge of rust-lang#62261 - varkor:conservative_is_privately_un…
…inhabited-subst, r=oli-obk Take substs into account in `conservative_is_privately_uninhabited`
Configuration menu - View commit details
-
Copy full SHA for c82c77d - Browse repository at this point
Copy the full SHA c82c77dView commit details -
Rollup merge of rust-lang#62528 - SimonSapin:concat, r=alexcrichton
Add joining slices of slices with a slice separator, not just a single item rust-lang#27747 (comment) > It's kinda annoying to be able to join strings with a str (which can have multiple chars), but joining a slice of slices, you can only join with a single element. This turns out to be fixable, with some possible inference regressions. # TL;DR Related trait(s) are unstable and tracked at rust-lang#27747, but the `[T]::join` method that is being extended here is already stable. Example use of the new insta-stable functionality: ```rust let nested: Vec<Vec<Foo>> = /* … */; let separator: &[Foo] = /* … */; // Previously: could only be a single &Foo nested.join(separator) ``` Complete API affected by this PR, after changes: ```rust impl<T> [T] { pub fn concat<Item: ?Sized>(&self) -> <Self as Concat<Item>>::Output where Self: Concat<Item> { Concat::concat(self) } pub fn join<Separator>(&self, sep: Separator) -> <Self as Join<Separator>>::Output where Self: Join<Separator> { Join::join(self, sep) } } // The `Item` parameter is only useful for the the slice-of-slices impl. pub trait Concat<Item: ?Sized> { type Output; fn concat(slice: &Self) -> Self::Output; } pub trait Join<Separator> { type Output; fn join(slice: &Self, sep: Separator) -> Self::Output; } impl<T: Clone, V: Borrow<[T]>> Concat<T> for [V] { type Output = Vec<T>; } impl<T: Clone, V: Borrow<[T]>> Join<&'_ T> for [V] { type Output = Vec<T>; } // New functionality here! impl<T: Clone, V: Borrow<[T]>> Join<&'_ [T]> for [V] { type Output = Vec<T>; } impl<S: Borrow<str>> Concat<str> for [S] { type Output = String; } impl<S: Borrow<str>> Join<&'_ str> for [S] { type Output = String; } ``` # Details After rust-lang#62403 but before this PR, the API is: ```rust impl<T> [T] { pub fn concat<Separator: ?Sized>(&self) -> T::Output where T: SliceConcat<Separator> { SliceConcat::concat(self) } pub fn join<Separator: ?Sized>(&self, sep: &Separator) -> T::Output where T: SliceConcat<Separator> { SliceConcat::join(self, sep) } } pub trait SliceConcat<Separator: ?Sized>: Sized { type Output; fn concat(slice: &[Self]) -> Self::Output; fn join(slice: &[Self], sep: &Separator) -> Self::Output; } impl<T: Clone, V: Borrow<[T]>> SliceConcat<T> for V { type Output = Vec<T>; } impl<S: Borrow<str>> SliceConcat<str> for S { type Output = String; } ``` By adding a trait impl we should be able to accept a slice of `T` as the separator, as an alternative to a single `T` value. In a `some_slice.join(some_separator)` call, trait resolution will pick an impl or the other based on the type of `some_separator`. In `some_slice.concat()` however there is no separator, so this call would become ambiguous. Some regression in type inference or trait resolution may be acceptable on principle, but requiring a turbofish for every single call to `concat` isn’t great. The solution to that is splitting the `SliceConcat` trait into two `Concat` and `Join` traits, one for each eponymous method. Only `Join` would gain a new impl, so that `some_slice.concat()` would not become ambiguous. Now, at the trait level the `Concat` trait does not need a `Separator` parameter anymore. However, simply removing it causes one of the impls not to be accepted anymore: ```rust error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates --> src/liballoc/slice.rs:608:6 | 608 | impl<T: Clone, V: Borrow<[T]>> Concat for [V] { | ^ unconstrained type parameter ``` This makes sense: if `[V]::concat` is a method that is itself not generic, then its return type (which is the `Concat::Output` associated type) needs to be determined based on solely `V`. And although there is no such type in the standard library, there is nothing stopping another crate from defining a `V` type that implements both `Borrow<[Foo]>` and `Borrow<[Bar]>`. It might not be a good idea, but it’s possible. Both would apply here, and there would be no way to determine `T`. This could be a warning sign that this API is too generic. Perhaps we’d be better off having one less type variable, and only implement `Concat for [&'_ [T]]` and `Concat for [Vec<T>]` etc. However this aspect of `[V]::concat` is already stable, so we’re stuck with it. The solution is to keep a dummy type parameter on the `Concat` trait. That way, if a type has multiple `Borrow<[_]>` impls, it’ll end up with multiple corresponding `Concat<_>` impls. In `impl<S: Borrow<str>> Concat<str> for [S]`, the second occurrence of `str` is not meaningful. It could be any type. As long as there is only once such type with an applicable impl, trait resolution will be appeased without demanding turbofishes. # Joining strings with `char` For symmetry I also tried adding this impl (because why not): ```rust impl<S: Borrow<str>> Join<char> for [S] { type Output = String; } ``` This immediately caused an inference regression in a dependency of rustc: ```rust error[E0277]: the trait bound `std::string::String: std::borrow::Borrow<[std::string::String]>` is not satisfied --> /home/simon/.cargo/registry/src/github.aaakk.us.kg-1ecc6299db9ec823/getopts-0.2.19/src/lib.rs:595:37 | 595 | row.push_str(&desc_rows.join(&desc_sep)); | ^^^^ the trait `std::borrow::Borrow<[std::string::String]>` is not implemented for `std::string::String` | = help: the following implementations were found: <std::string::String as std::borrow::Borrow<str>> = note: required because of the requirements on the impl of `std::slice::Join<&std::string::String>` for `[std::string::String]` ``` In the context of this code, two facts are known: * `desc_rows` is a `Vec<String>` * `desc_sep` is a `String` Previously the first fact alone reduces the resolution of `join` to only one solution, where its argument it expected to be `&str`. Then, `&String` is coerced to `&str`. With the new `Join` impl, the first fact leavs two applicable impls where the separator can be either `&str` or `char`. But `&String` is neither of these things. It appears that possible coercions are not accounted for, in the search for a solution in trait resolution. I have not included this new impl in this PR. It’s still possible to add later, but the `getopts` breakage does not need to block the rest of the PR. And the functionality easy for end-user to duplicate: `slice_of_strings.join(&*char_separator.encode_utf8(&mut [0_u8, 4]))` The `&*` part of that last code snippet is another case of the same issue: `encode_utf8` returns `&mut str` which can be coerced to `&str`, but isn’t when trait resolution is ambiguous.
Configuration menu - View commit details
-
Copy full SHA for 7a308b8 - Browse repository at this point
Copy the full SHA 7a308b8View commit details -
Rollup merge of rust-lang#62735 - petrochenkov:galloc, r=alexcrichton
Turn `#[global_allocator]` into a regular attribute macro It was a 99% macro with exception of some diagnostic details. As a result of the change, `#[global_allocator]` now works in nested modules and even in nameless blocks. Fixes rust-lang#44113 Fixes rust-lang#58072
Configuration menu - View commit details
-
Copy full SHA for 1072458 - Browse repository at this point
Copy the full SHA 1072458View commit details -
Rollup merge of rust-lang#62801 - bjorn3:remove_lower_128bit_ops, r=a…
…lexcrichton Remove support for -Zlower-128bit-ops It is broken and unused cc rust-lang#58969 blocked rust-lang/compiler-builtins#302 (removes definitions of the lang items removed in this PR) r? @alexcrichton
Configuration menu - View commit details
-
Copy full SHA for 14a2161 - Browse repository at this point
Copy the full SHA 14a2161View commit details -
Rollup merge of rust-lang#62822 - RalfJung:pointers, r=Centril
Improve some pointer-related documentation
Configuration menu - View commit details
-
Copy full SHA for a6a0122 - Browse repository at this point
Copy the full SHA a6a0122View commit details -
Rollup merge of rust-lang#62904 - nikic:arm-d32, r=alexcrichton
Disable d32 on armv6 hf targets We already do this on armv7 targets. It seems that this now gets enabled by default if '+vfp2` is specified, so disable it explicitly. Hopefully fixes rust-lang#62841. r? @alexcrichton
Configuration menu - View commit details
-
Copy full SHA for a8acd87 - Browse repository at this point
Copy the full SHA a8acd87View commit details -
Rollup merge of rust-lang#62907 - nikic:msp430-asmparser, r=alexcrichton
Initialize the MSP430 AsmParser Hopefully fixes rust-lang#59077. r? @alexcrichton
Configuration menu - View commit details
-
Copy full SHA for fc18744 - Browse repository at this point
Copy the full SHA fc18744View commit details -
Rollup merge of rust-lang#62921 - iluuu1994:improve-help-for-method-d…
…isambiguation, r=estebank Add method disambiguation help for trait implementation Closes rust-lang#51046 Closes rust-lang#40471
Configuration menu - View commit details
-
Copy full SHA for 17fd31b - Browse repository at this point
Copy the full SHA 17fd31bView commit details -
Rollup merge of rust-lang#62942 - KevinWMatthews:condvar_docs_match_e…
…rgo, r=sfackler Use match ergonomics in Condvar documentation Documentation was written before match ergonomics was merged. See rust-lang#62857. In short, replaces ```rust let &(ref lock, ref cvar) = &*pair; ``` with ```rust let (lock, cvar) = &*pair ``` in the docs of `std::sync::Condvar`.
Configuration menu - View commit details
-
Copy full SHA for 5647078 - Browse repository at this point
Copy the full SHA 5647078View commit details