Commit Graph

120782 Commits

Author SHA1 Message Date
Tomasz Miąsko
7c6301496b liveness: Remove unused fallthrough_ln 2020-05-29 16:11:28 +02:00
Tomasz Miąsko
b3342b4920 liveness: Remove unused clean_exit_var 2020-05-29 16:11:28 +02:00
Tomasz Miąsko
3f13d97d27 liveness: Log information about used variables 2020-05-29 16:11:28 +02:00
bors
77f95a89a1 Auto merge of #72727 - JohnTitor:rollup-nni16m2, r=JohnTitor
Rollup of 11 pull requests

Successful merges:

 - #71633 (Impl Error for Infallible)
 - #71843 (Tweak and stabilize AtomicN::fetch_update)
 - #72288 (Stabilization of weak-into-raw)
 - #72324 (Stabilize AtomicN::fetch_min and AtomicN::fetch_max)
 - #72452 (Clarified the documentation for Formatter::precision)
 - #72495 (Improve E0601 explanation)
 - #72534 (Improve missing `@` in slice binding pattern diagnostics)
 - #72547 (Added a codegen test for a recent optimization for overflow-checks=on)
 - #72711 (remove redundant `mk_const`)
 - #72713 (Whitelist #[allow_internal_unstable])
 - #72720 (Clarify the documentation of `take`)

Failed merges:

r? @ghost
2020-05-29 07:52:06 +00:00
Yuki Okushi
fb506af138
Rollup merge of #72720 - poliorcetics:clarify-take-doc, r=joshtriplett
Clarify the documentation of `take`

This PR addresses the concerns of #61222, adding an example for the behaviour of `Iterator::take` when there are less than `n` elements.
2020-05-29 15:07:11 +09:00
Yuki Okushi
5207428176
Rollup merge of #72713 - rust-lang:jonas-schievink-patch-2, r=Mark-Simulacrum
Whitelist #[allow_internal_unstable]

This should hopefully work around https://github.com/rust-lang/rust/issues/65023, which currently makes almost every bootstrap fail for me.
2020-05-29 15:07:09 +09:00
Yuki Okushi
054fbf4019
Rollup merge of #72711 - lcnr:fixme-heyho, r=jonas-schievink
remove redundant `mk_const`

Taken from #72675 as this is fairly unrelated and that PR is more difficult than I imagined,
so it may take some time until it lands.
2020-05-29 15:07:07 +09:00
Yuki Okushi
05229f7be3
Rollup merge of #72547 - alex:patch-1, r=oli-obk
Added a codegen test for a recent optimization for overflow-checks=on

Closes #58692
2020-05-29 15:07:05 +09:00
Yuki Okushi
d19b51e441
Rollup merge of #72534 - chrissimpkins:fix-72373, r=estebank
Improve missing `@` in slice binding pattern diagnostics

Closes https://github.com/rust-lang/rust/issues/72373

Includes a new suggestion with `Applicability::MaybeIncorrect` confidence level.

Before:

```
 --> src/main.rs:5:19
  |
5 |         [h, ref ts..] => foo(c, n - h) + foo(ts, n),
  |                   -^
  |                   |
  |                   expected one of `,`, `@`, `]`, or `|`
  |                   help: missing `,`

error[E0308]: mismatched types
 --> src/main.rs:5:46
  |
5 |         [h, ref ts..] => foo(c, n - h) + foo(ts, n),
  |                                              ^^ expected slice `[u32]`, found `u32`
  |
  = note: expected reference `&[u32]`
             found reference `&u32`

error: aborting due to 2 previous errors
```

After:

```
error: expected one of `,`, `@`, `]`, or `|`, found `..`
 --> src/main.rs:5:20
  |
5 |         [h, ref ts..] => foo(c, n - h) + foo(ts, n),
  |                    ^^ expected one of `,`, `@`, `]`, or `|`
  |
help: if you meant to bind the contents of the rest of the array pattern into `ts`, use `@`
  |
5 |         [h, ref ts @ ..] => foo(c, n - h) + foo(ts, n),
  |                    ^

error: aborting due to previous error
```

r? @estebank
2020-05-29 15:07:04 +09:00
Yuki Okushi
6786c7d190
Rollup merge of #72495 - GuillaumeGomez:cleanup-e0601, r=Dylan-DPC
Improve E0601 explanation

r? @Dylan-DPC
2020-05-29 15:07:02 +09:00
Yuki Okushi
6ab9f65a92
Rollup merge of #72452 - Lucretiel:precision-doc, r=dtolnay
Clarified the documentation for Formatter::precision

Added a note that `precision` is interpreted as max-width when formatting strings
2020-05-29 15:06:59 +09:00
Yuki Okushi
986c60c78b
Rollup merge of #72324 - Amanieu:atomic_minmax, r=dtolnay
Stabilize AtomicN::fetch_min and AtomicN::fetch_max

Some architectures (ARMv8.1 LSE and RISC-V) have specific instructions for atomic min/max which the compiler can only generate through explicit instrinsics.
2020-05-29 15:06:57 +09:00
Yuki Okushi
d472f8e462
Rollup merge of #72288 - vorner:stabilize-weak-into-raw, r=dtolnay
Stabilization of weak-into-raw

Closes #60728.

There are also two removals of `#![feature(weak_into_raw)]` in the `src/tools/miri` submodule. How should I synchronize the changes with there?

* I can ignore it for now and once this gets merged, update the tool, send a pull request to that one and then reference the changes to rustc.
* I could try submitting the changes to miri first, but then the build would fail there, because the attribute would still be needed.

I think the first one is the correct one, extrapolating from the contributing guidelines (even though they speak about breaking the tools and this should not break it, as extra feature should not hurt).
2020-05-29 15:06:55 +09:00
Yuki Okushi
ea5848df4b
Rollup merge of #71843 - sfackler:cas-loop-cleanup, r=dtolnay
Tweak and stabilize AtomicN::fetch_update

The fetch_update method implements a compare-and-swap loop to update the value in an atomic to an arbitrary value computed by a closure.

I've applied a few tweaks suggested by @mystor in this comment on the tracking issue: https://github.com/rust-lang/rust/issues/48655#issuecomment-496036553. Specifically, the load and store ordering arguments have been swapped to match with the orderings of `compare_exchange`, and the closure has been moved from the first to last argument.

Moving the closure to the last argument is a change away from other methods on the atomic types which place the ordering(s) last, but matches with the broad convention that closure arguments come last in functions. In particular, rustfmt style lays calls with multi-line closures out more cleanly when the closure comes last.
2020-05-29 15:06:53 +09:00
Yuki Okushi
a08a03ced7
Rollup merge of #71633 - a1phyr:infallible_error, r=dtolnay
Impl Error for Infallible

This PR only changes the place where `impl Error for Infallible` is documented, as one could think that it is not the case when reading https://doc.rust-lang.org/nightly/std/convert/enum.Infallible.html.

Fixes #70842
2020-05-29 15:06:48 +09:00
bors
9cd3f1c549 Auto merge of #72506 - Nadrieril:fix-72476, r=matthewjasper
Exhaustiveness checking: work around type normalization issues

This should resolve https://github.com/rust-lang/rust/issues/72476 and probably https://github.com/rust-lang/rust/issues/72467.
This is a bit hacky but that's actually what the code was doing before https://github.com/rust-lang/rust/pull/71930. I'm essentially reverting e5a2cd526a. So despite being hacky, it's been tried and tested (so much so that code relies on it now x)).
Only the third commit does anything interesting.
2020-05-29 04:05:03 +00:00
Alexis Bourget
85f4f1c95a Clarify the documentation of take 2020-05-29 03:29:01 +02:00
bors
255c0338dc Auto merge of #72716 - Dylan-DPC:rollup-wdj97ab, r=Dylan-DPC
Rollup of 12 pull requests

Successful merges:

 - #72239 (Implement PartialOrd and Ord for SocketAddr*)
 - #72466 (Stabilize str_strip feature)
 - #72605 (Add working example for E0617 explanation)
 - #72636 (Cleanup `Resolver::<clone|into>_outputs` methods)
 - #72645 (Add myself to .mailmap)
 - #72667 (expand unaligned_references test)
 - #72670 (Fix incorrect comment in generator test)
 - #72674 (Clippy should always build)
 - #72682 (Add test for #66930)
 - #72695 (update data layout for illumos x86)
 - #72697 (Remove rustc-ux-guidelines)
 - #72702 (rustc_lint: Remove `unused_crate_dependencies` from the `unused` group)

Failed merges:

r? @ghost
2020-05-29 00:42:59 +00:00
Dylan DPC
049b6dd4e1
Rollup merge of #72702 - petrochenkov:unudeps, r=estebank
rustc_lint: Remove `unused_crate_dependencies` from the `unused` group

Fixes https://github.com/rust-lang/rust/issues/72686

It's undesirable to enable `unused_crate_dependencies` with blanket `#![deny(unused)]` due to the amount of redundant `--extern` options passed by Cargo.
2020-05-29 02:33:29 +02:00
Dylan DPC
ada9c11489
Rollup merge of #72697 - ehuss:rm-rustc-ux-guidelines, r=nikomatsakis
Remove rustc-ux-guidelines

This is now in the rustc-dev-guide:
* https://github.com/rust-lang/rustc-dev-guide/pull/716
* https://github.com/rust-lang/rustc-dev-guide/pull/717

This is a public page, but it was not linked to anywhere, so I think it is safe to remove. Google searches don't show it being used anywhere.
2020-05-29 02:33:28 +02:00
Dylan DPC
c9f07d3cfe
Rollup merge of #72695 - jclulow:illumos-llvm-catchup, r=nikic
update data layout for illumos x86

In a recent change, 8b199222cc,
adjustments were made to the data layout we pass to LLVM.
Unfortunately, the illumos target was missed in this change.
See also: https://github.com/rust-lang/rust/pull/67900
2020-05-29 02:33:26 +02:00
Dylan DPC
71512e425f
Rollup merge of #72682 - JohnTitor:mir-tests, r=RalfJung
Add test for #66930

Closes #66930
Closes #67558

They're fixed by #72424.
I skipped adding `--emit=mir` flag to src/test/ui/issues/issue-25145.rs as a regression test since the root cause seems the same and it should be run with `check-pass`, not `run-pass` so we should duplicate that test.

r? @RalfJung
2020-05-29 02:33:24 +02:00
Dylan DPC
feaceb2063
Rollup merge of #72674 - Mark-Simulacrum:clippy-always-test-pass, r=oli-obk
Clippy should always build

This just unwraps clippy's build step instead of skipping tests if clippy didn't
build. This matches e.g. cargo's behavior and seems more correct, as we always
expect clippy to successfully build.

I believe this doesn't actually change anything in practice, but I feel mildly uncomfortable potentially leaving this hole open.
2020-05-29 02:33:23 +02:00
Dylan DPC
0204fc38d2
Rollup merge of #72670 - rust-lang:jonas-schievink-patch-1, r=nikomatsakis
Fix incorrect comment in generator test

https://github.com/rust-lang/rust/pull/69837#discussion_r431141825 (thanks for the catch, @jplatte)
2020-05-29 02:33:21 +02:00
Dylan DPC
733bee599c
Rollup merge of #72667 - RalfJung:unaligned-ref-test, r=nikomatsakis
expand unaligned_references test

Also test implicit ref when having a field as a method receiver, as suggested by @bluss.
2020-05-29 02:33:19 +02:00
Dylan DPC
ec0cd2df0c
Rollup merge of #72645 - ldm0:mailmap, r=nikomatsakis
Add myself to .mailmap
2020-05-29 02:33:18 +02:00
Dylan DPC
48ea37b82e
Rollup merge of #72636 - marmeladema:resolver-outputs-def-id, r=petrochenkov
Cleanup `Resolver::<clone|into>_outputs` methods

Follow-up cleanup work of https://github.com/rust-lang/rust/pull/72402

First commit has been split out from https://github.com/rust-lang/rust/pull/72552

r? @ecstatic-morse
2020-05-29 02:33:16 +02:00
Dylan DPC
235f382731
Rollup merge of #72605 - GuillaumeGomez:cleanup-e0617, r=Dylan-DPC
Add working example for E0617 explanation

r? @Dylan-DPC
2020-05-29 02:33:14 +02:00
Dylan DPC
3bcf6973b6
Rollup merge of #72466 - lzutao:stabilize_str-strip, r=dtolnay
Stabilize str_strip feature

This PR stabilizes these APIs:

```rust
impl str {
    /// Returns a string slice with the prefix removed.
    ///
    /// If the string starts with the pattern `prefix`, `Some` is returned with the substring where
    /// the prefix is removed. Unlike `trim_start_matches`, this method removes the prefix exactly
    /// once.
    pub fn strip_prefix<'a, P: Pattern<'a>>(&'a self, prefix: P) -> Option<&'a str>;

    /// Returns a string slice with the suffix removed.
    ///
    /// If the string ends with the pattern `suffix`, `Some` is returned with the substring where
    /// the suffix is removed. Unlike `trim_end_matches`, this method removes the suffix exactly
    /// once.
    pub fn strip_suffix<'a, P>(&'a self, suffix: P) -> Option<&'a str>
    where
        P: Pattern<'a>,
        <P as Pattern<'a>>::Searcher: ReverseSearcher<'a>;
}
```

Closes  #67302
2020-05-29 02:33:11 +02:00
Dylan DPC
b18c55b179
Rollup merge of #72239 - hch12907:master, r=dtolnay
Implement PartialOrd and Ord for SocketAddr*

The implementation is mostly the same as the one found in `IpAddr` (other than adding comparison for ports, of course).
Continues #53788 and #53863
Fixes #53710
2020-05-29 02:33:07 +02:00
Jonas Schievink
d4ef1744f5
Whitelist #[allow_internal_unstable]
This should hopefully work around https://github.com/rust-lang/rust/issues/65023, which currently makes almost every bootstrap fail for me.
2020-05-29 01:19:33 +02:00
Bastian Kauschke
461891a000 remove redundant mk_const 2020-05-28 23:59:54 +02:00
Vadim Petrochenkov
1eef0c3c1e rustc_lint: Remove unused_crate_dependencies from the unused group 2020-05-28 20:03:36 +03:00
Eric Huss
4329261095 Remove rustc-ux-guidelines 2020-05-28 08:23:23 -07:00
Joshua M. Clulow
bb745d6a18 update data layout for illumos x86
In a recent change, 8b199222cc,
adjustments were made to the data layout we pass to LLVM.
Unfortunately, the illumos target was missed in this change.
See also: https://github.com/rust-lang/rust/pull/67900
2020-05-28 08:09:10 -07:00
Yuki Okushi
e069524c48
Add test for #66930 2020-05-28 16:50:10 +09:00
bors
4512721156 Auto merge of #72494 - lcnr:predicate-cleanup, r=nikomatsakis
Pass more `Copy` types by value.

There are a lot of locations where we pass `&T where T: Copy` by reference,
which should both be slightly less performant and less readable IMO.

This PR currently consists of three fairly self contained commits:

- passes `ty::Predicate` by value and stops depending on `AsRef<ty::Predicate>`.
- changes `<&List<_>>::into_iter` to iterate over the elements by value. This would break `List`s
  of non copy types. But as the only list constructor requires `T` to be copy anyways, I think
  the improved readability is worth this potential future restriction.
- passes `mir::PlaceElem` by value. Mir currently has quite a few copy types which are passed by reference, e.g. `Local`. As I don't have a lot of experience working with MIR, I mostly did this to get some feedback from people who use MIR more frequently
- tries to reuse `ty::Predicate` in case it did not change in some places, which should hopefully
  fix the regression caused by #72055

r? @nikomatsakis for the first commit, which continues the work of #72055 and makes adding `PredicateKind::ForAll` slightly more pleasant. Feel free to reassign though
2020-05-28 00:18:52 +00:00
Mark Rousskov
b1063b83da Clippy should always build
This just unwraps clippy's build step instead of skipping tests if clippy didn't
build. This matches e.g. cargo's behavior and seems more correct, as we always
expect clippy to successfully build.
2020-05-27 17:25:47 -04:00
Jonas Schievink
1ab0db1272
Fix incorrect comment in generator test 2020-05-27 21:38:38 +02:00
Guillaume Gomez
5548e69226 Add working example for E0617 explanation 2020-05-27 21:29:09 +02:00
bors
664fcd3f04 Auto merge of #71996 - Marwes:detach_undo_log, r=nikomatsakis
perf: Revert accidental inclusion of a part of #69218

This was accidentally included in #69464 after a rebase and given
how much `inflate` and `keccak` stresses the obligation forest seems
like a likely culprit to the regression in those benchmarks.

(It is necessary in #69218 as obligation forest needs to accurately
track the root variables or unifications will get lost)
2020-05-27 18:31:45 +00:00
Ralf Jung
7b1187968c expand unaligned_references test 2020-05-27 20:31:17 +02:00
Chris Simpkins
593d1eed82
improve diagnostics suggestion for missing @ in slice id binding to rest pattern
add issue 72373 tests


fmt test


fix suggestion format

Replacement, not insertion of suggested string

implement review changes

refactor to span_suggestion_verbose, improve suggestion message,  change id @ pattern space formatting

fmt


fix diagnostics spacing between ident and @


refactor reference
2020-05-27 14:10:41 -04:00
marmeladema
81f8ee458b Store LocalDefId directly in rustc_resolve::Resolver where possible
This commit also include the following changes:
* Remove unused `hir::Map::as_local_node_id` method
* Remove outdated comment about `hir::Map::local_def_id` method
* Remove confusing `GlobMap` type alias
* Use `LocalDefId` instead of `DefId` in `extern_crate_map`
* Use `LocalDefId` instead of `DefId` in `maybe_unused_extern_crates`
* Modify `extern_mod_stmt_cnum` query to accept a `LocalDefId` instead of a `DefId`
2020-05-27 15:55:35 +01:00
bors
2873165725 Auto merge of #72601 - JohnTitor:deps, r=Mark-Simulacrum
Update transitive dependencies to remove some deps

Similar to #71919, this removes some (duplicate) dependencies.
2020-05-27 14:48:33 +00:00
bors
acfc558401 Auto merge of #72639 - Dylan-DPC:rollup-76upj51, r=Dylan-DPC
Rollup of 6 pull requests

Successful merges:

 - #72348 (Fix confusing error message for comma typo in multiline statement)
 - #72533 (Resolve UB in Arc/Weak interaction (2))
 - #72548 (Add test for old compiler ICE when using `Borrow`)
 - #72606 (Small cell example update)
 - #72610 (Remove font-display settings)
 - #72626 (Add remark regarding DoubleEndedIterator)

Failed merges:

r? @ghost
2020-05-27 11:18:53 +00:00
Donough Liu
42ddcd3ec5 Add myself to .mailmap 2020-05-27 16:16:27 +08:00
Dylan DPC
e6353aac9d
Rollup merge of #72626 - phimuemue:doubleendediter_doc, r=dtolnay
Add remark regarding DoubleEndedIterator

While reviewing 14293bd18f (diff-2c16d2ada06ad2fd1fc754679646d471), I realized that a `DoubleEndedIterator` may yield different elements depending on whether it is traversed forwards or backwards. (Not only the *order*, but possibly also the yielded values.)

I found this remarkable, but could not find anything in the current docs, so I thought it may be worth mentioning this explicitly.

Unfortunately, I could not test these changes locally (`rustdoc` complains about `unresolved import`). Sorry if this causes headache.

If I should change something, please let me know. If it seems too trivial, feel free to just close this PR.
2020-05-27 03:09:23 +02:00
Dylan DPC
9e061f35e8
Rollup merge of #72610 - GuillaumeGomez:revert-unwanted-css-changes, r=Dylan-DPC
Remove font-display settings

Since for the moment, the result isn't as expected since #72092 when not using docs locally, let's revert them.

r? @Dylan-DPC
2020-05-27 03:09:21 +02:00
Dylan DPC
36d6118666
Rollup merge of #72606 - GuillaumeGomez:cell-example-update, r=Dylan-DPC
Small cell example update

r? @Dylan-DPC
2020-05-27 03:09:19 +02:00