kennytm [Tue, 20 Mar 2018 22:18:32 +0000 (06:18 +0800)]
Rollup merge of #49196 - Phlosioneer:49123-sort-where-conditions, r=QuietMisdreavus
Fix ordering of auto-generated trait bounds in rustdoc output
While the order of the where clauses was deterministic, the
ordering of bounds and lifetimes was not. This made the order flip-
flop randomly when new traits and impls were added to libstd.
This PR makes the ordering of bounds and lifetimes deterministic,
and re-enables the test that was causing the issue.
kennytm [Tue, 20 Mar 2018 22:18:31 +0000 (06:18 +0800)]
Rollup merge of #49182 - matklad:update-clap, r=kennytm
Update clap
This should fix a regression in Cargo after swithing to clap, when
an external subcommand was not discovered, if its name was close to
a built in command.
bors [Tue, 20 Mar 2018 07:42:19 +0000 (07:42 +0000)]
Auto merge of #48516 - petrochenkov:stabsl, r=nikomatsakis
Stabilize slice patterns without `..`
And merge `feature(advanced_slice_patterns)` into `feature(slice_patterns)`.
The detailed description can be found in https://github.com/rust-lang/rust/issues/48836.
Slice patterns were unstable for long time since before 1.0 due to many bugs in the implementation, now this stabilization is possible primarily due to work of @arielb1 who [wrote the new MIR-based implementation of slice patterns](https://github.com/rust-lang/rust/pull/32202) and @mikhail-m1 who [fixed one remaining class of codegen issues](https://github.com/rust-lang/rust/pull/47926).
Reference PR https://github.com/rust-lang-nursery/reference/pull/259
cc https://github.com/rust-lang/rust/issues/23121
fixes #48836
Phlosioneer [Tue, 20 Mar 2018 03:35:23 +0000 (23:35 -0400)]
Fix ordering of auto-generated trait bounds in rustdoc output
While the order of the where clauses was deterministic, the
ordering of bounds and lifetimes was not. This made the order flip-
flop randomly when new traits and impls were added to libstd.
This PR makes the ordering of bounds and lifetimes deterministic,
and re-enables the test that was causing the issue.
kennytm [Mon, 19 Mar 2018 23:15:33 +0000 (07:15 +0800)]
Rollup merge of #49176 - matthiaskrgr:config_example_rm_thinlto, r=alexcrichton
config.toml.example: thinlto bootstrap was removed
It was removed in ff227c4a2d8a2fad5abf322f6f1391ae6779197f so remove the option that no longer works (we did not notice because it was commented out by default).
kennytm [Mon, 19 Mar 2018 23:15:24 +0000 (07:15 +0800)]
Rollup merge of #49125 - NovemberZulu:master, r=alexcrichton
rustbuild: Ship libsynchronization
Hot on the heels of #49044 comes similar issue with libsynchronization. Discovered while building clippy:
```
<skipped>
Compiling serde_derive v1.0.33
error: linking with `gcc` failed: exit code: 1
<skipped>
= note: ld: cannot find -lsynchronization
```
kennytm [Mon, 19 Mar 2018 23:15:15 +0000 (07:15 +0800)]
Rollup merge of #48834 - ysiraichi:suggest-remove-ref, r=estebank
Suggest removing `&`s
This implements the error message discussed in #47744.
We check whether removing each `&` yields a type that satisfies the requested obligation.
Also, it was created a new `NodeId` field in `ObligationCause` in order to iterate through the `&`s. The way it's implemented now, it iterates through the obligation snippet and counts the number of `&`.
kennytm [Mon, 19 Mar 2018 23:15:12 +0000 (07:15 +0800)]
Rollup merge of #46518 - partim:asref-borrow-doc, r=dtolnay
Improve documentation for Borrow
This is the first step in improving the documentation for all the reference conversion traits. It proposes new text for the trait documentation of `Borrow`. Since I feel it is a somewhat radical rewrite and includes a stricter contract for `Borrow` then the previous text—namely that *all* shared traits need to behave the same, not just a select few—, I wanted to get some feedback before continuing.
Apart from the ‘normative’ description, the new text also includes a fairly extensive explanation of how the trait is used in the examples section. I included it because every time I look at how `HashMap` uses the trait, I need to think for a while as the use is a bit twisted. So, I thought having this thinking written down as part of the trait itself might be useful. One could argue that this should go into The Book, and, while I really like having everything important in the docs, I can see the text moved there, too.
So, before I move on: is this new text any good? Do we feel it is correct, useful, comprehensive, and understandable?
The new formatting string syntax (`x?` and `X?`) is insta-stable in this PR because I don’t know how to change a built-in proc macro’s behavior based of a feature gate. I can look into adding that, but I also strongly suspect that keeping this feature unstable for a time period would not be useful as possibly no-one would use it during that time.
This PR does not add the new (public) `fmt::Formatter` proposed in the API because:
* There was some skepticism on response to this part of the RFC
* It is not possible to implement as-is without larger changes to `fmt`, because `Formatter` at the moment has no easy way to tell apart for example `Octal` from `Binary`: it only has a function pointer for the relevant `fmt()` method.
If some integer-like type outside of `std` want to implement this behavior, another RFC will likely need to propose a different public API for `Formatter`.
bors [Mon, 19 Mar 2018 00:02:32 +0000 (00:02 +0000)]
Auto merge of #49095 - alexcrichton:debug-asmjs, r=kennytm
Try to reduce amount of time on the asmjs builder
This PR has two commits for two separate strategies:
* First it disables optimizations for all tests, hopefully saving time by not optimizing the test code. This caused a number of run-pass tests to fail which are switched to being ignored here.
* Next it disables a number of test suites which aren't asm.js specific and already run elsewhere
bors [Sat, 17 Mar 2018 23:22:57 +0000 (23:22 +0000)]
Auto merge of #48842 - petrochenkov:under, r=nikomatsakis
syntax: Make `_` a reserved identifier
Why:
- Lexically `_` is an identifier.
- Internally it makes implementation of `use Trait as _;` (https://github.com/rust-lang/rust/issues/48216) and some other things cleaner.
- We prevent the externally observable effect of `_` being accepted by macros expecting `ident` by treating `_` specially in the `ident` matcher:
```rust
macro_rules! m {
($i: ident) => { let $i = 10; }
}
kennytm [Sat, 17 Mar 2018 09:20:47 +0000 (17:20 +0800)]
Rollup merge of #49077 - sinkuu:macro_use_typo, r=estebank
Checks for unknown attributes before aborting due to unresolved macros
Fixes #49074
The ``attribute `...` is currently unknown to the compiler`` error was not shown if there are any unresolved macros, which might be caused by mistyped `macro_use`.
These produce better code that what we are currently producing in `stdsimd`, but the code is still not optimal due to this LLVM bug: https://bugs.llvm.org/show_bug.cgi?id=36702
kennytm [Sat, 17 Mar 2018 09:20:41 +0000 (17:20 +0800)]
Rollup merge of #48943 - comex:verbose, r=kennytm
Support extra-verbose builds
- The bootstrap crate currently passes -v to Cargo if itself invoked with -vv. But Cargo supports -vv (to show build script output), so make bootstrap pass that if itself invoked with -vvv. (More specifically, pass N '-v's to Cargo if invoked with N+1 of them.)
- bootstrap.py currently tries to pass on up to two '-v's to cargo when building bootstrap, but incorrectly ('-v' is marked as 'store_true', so argparse stores either False or True, ignoring multiple '-v's). Fix this, allow passing any number of '-v's, and make it consistent with bootstrap's invocation of Cargo (i.e. subtract one from the number of '-v's).
- Also improve bootstrap.py's config.toml 'parsing' to support arbitrary verbosity levels, + allow command line to override it.
bors [Sat, 17 Mar 2018 03:15:21 +0000 (03:15 +0000)]
Auto merge of #49090 - QuietMisdreavus:test-rustdoc-again, r=Mark-Simulacrum
re-enable testing librustdoc
This was originally put in in https://github.com/rust-lang/rust/pull/44274, but https://github.com/rust-lang/rust/pull/48105 accidentally hid it. This change puts librustdoc unit/doc tests back in the main test listing.
bors [Sat, 17 Mar 2018 00:48:10 +0000 (00:48 +0000)]
Auto merge of #49088 - michaelwoerister:fix-49070, r=nikomatsakis
incr.comp.: Make sanity check in try_mark_green() aware of error conditions.
Before this PR, `DepGraph::try_mark_green()` assumed that forcing a query would always set the color of the corresponding dep-node. However, it did not take into account that queries could also fail (e.g. with a cycle error). This PR makes the method handle that condition gracefully.
The first one switches cargo from docopt to clap (
we also update to the latest calp in this repository),
the second one should help us to unify feature flags
for Cargo itself and RLS, and build Cargo libray only
once.