]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoRollup merge of #72439 - westernmagic:master, r=Amanieu
Ralf Jung [Fri, 29 May 2020 19:58:34 +0000 (21:58 +0200)]
Rollup merge of #72439 - westernmagic:master, r=Amanieu

NVPTX support for new asm!

This PR implements the new `asm!` syntax for the `nvptx64-nvidia-cuda` target.

r? @Amanieu

4 years agoRollup merge of #72413 - CAD97:char-range, r=dtolnay
Ralf Jung [Fri, 29 May 2020 19:58:32 +0000 (21:58 +0200)]
Rollup merge of #72413 - CAD97:char-range, r=dtolnay

impl Step for char (make Range*<char> iterable)

[[irlo thread]](https://internals.rust-lang.org/t/mini-rfc-make-range-char-work/12392?u=cad97) [[godbolt asm example]](https://rust.godbolt.org/z/fdveKo)

Add an implementation of the `Step` trait for `char`, which has the effect of making `RangeInclusive<char>` (and the other range types) iterable.

I've used the surrogate range magic numbers as magic numbers here rather than e.g. a `const SURROGATE_RANGE = 0xD800..0xE000` because these numbers appear to be used as magic numbers elsewhere and there doesn't exist constants for them yet. These files definitely aren't where surrogate range constants should live.

`ExactSizeIterator` is not implemented because `0x10FFFF` is bigger than fits in a `usize == u16`. However, given we already provide some `ExactSizeIterator` that are not correct on 16 bit targets, we might still want to consider providing it for `Range`[`Inclusive`]`<char>`, as it is definitely _very_ convenient. (At the very least, we want to make sure `.count()` doesn't bother iterating the range.)

The second commit in this PR changes a call to `Step::forward` to use `Step::forward_unchecked` in `RangeInclusive::next`. This is because without this patch, iteration over all codepoints (`'\0'..=char::MAX`) does not successfully optimize out the panicking branch. This was mentioned in the PR that updated `Step` to its current design, but was deemed not yet necessary as it did not impact codegen for integral types.

More of `Range*`'s implementations' calls to `Step` methods will probably want to see if they can use the `_unchecked` version as (if) we open up `Step` to being implemented on more types.

---

cc @rust-lang/libs, this is insta-stable and a fairly significant addition to `Range*`'s capabilities; this is the first instance of a noncontinuous domain being iterable with `Range` (or, well, anything other than primitive integers). I don't think this needs a full RFC, but it should definitely get some decent eyes on it.

4 years agoRollup merge of #72407 - Lucretiel:ipv6-display, r=Mark-Simulacrum
Ralf Jung [Fri, 29 May 2020 19:58:29 +0000 (21:58 +0200)]
Rollup merge of #72407 - Lucretiel:ipv6-display, r=Mark-Simulacrum

Various minor improvements to Ipv6Addr::Display

Cleaned up `Ipv6Addr::Display`, especially with an eye towards simplifying and reducing duplicated logic. Also added a fast-path optimization, similar to #72399 and #72398.

- Defer to `Ipv4Addr::fmt` when printing an Ipv4 address
- Fast path: write directly to `f` without an intermediary buffer when there are no alignment options
- Simplify finding the inner zeroes-span

4 years agoRollup merge of #72103 - lcnr:borrowck-localdefid, r=jonas-schievink
Ralf Jung [Fri, 29 May 2020 19:58:27 +0000 (21:58 +0200)]
Rollup merge of #72103 - lcnr:borrowck-localdefid, r=jonas-schievink

borrowck `DefId` -> `LocalDefId`

Replaces some `DefId`s which must always be local with `LocalDefId` in `librustc_mir/borrowck`.

cc @marmeladema

4 years agoRollup merge of #71862 - LeSeulArtichaut:unsafe-block-in-unsafe-fn, r=nikomatsakis
Ralf Jung [Fri, 29 May 2020 19:58:25 +0000 (21:58 +0200)]
Rollup merge of #71862 - LeSeulArtichaut:unsafe-block-in-unsafe-fn, r=nikomatsakis

Implement RFC 2585: unsafe blocks in unsafe fn

Tracking issue: #71668
r? @RalfJung cc @nikomatsakis

4 years agoRollup merge of #71804 - petrochenkov:static-pie, r=cuviper
Ralf Jung [Fri, 29 May 2020 19:58:24 +0000 (21:58 +0200)]
Rollup merge of #71804 - petrochenkov:static-pie, r=cuviper

linker: Support `-static-pie` and `-static -shared`

This PR adds support for passing linker arguments for creating statically linked position-independent executables and "statically linked" shared libraries.

Therefore it incorporates the majority of https://github.com/rust-lang/rust/pull/70740 except for the linker rerun hack and actually flipping the "`static-pie` is supported" switch for musl targets.

4 years agoRollup merge of #71500 - josephlr:offset, r=oli-obk,RalfJung
Ralf Jung [Fri, 29 May 2020 19:58:22 +0000 (21:58 +0200)]
Rollup merge of #71500 - josephlr:offset, r=oli-obk,RalfJung

Make pointer offset methods/intrinsics const

Implements #71499 using [the implementations from miri](https://github.com/rust-lang/miri/blob/52f5d202bdcfe8986f0615845f8d1647ab8a2c6a/src/shims/intrinsics.rs#L96-L112).

I added some tests what's allowed and what's UB. Let me know if any other cases should be added.

CC: @RalfJung @oli-obk
4 years agoRollup merge of #71095 - pickfire:box-from-array, r=dtolnay
Ralf Jung [Fri, 29 May 2020 19:58:19 +0000 (21:58 +0200)]
Rollup merge of #71095 - pickfire:box-from-array, r=dtolnay

impl From<[T; N]> for Box<[T]>

Based on https://github.com/rust-lang/rust/pull/68692

4 years agoRollup merge of #67460 - estebank:named-lts, r=nikomatsakis
Ralf Jung [Fri, 29 May 2020 19:58:14 +0000 (21:58 +0200)]
Rollup merge of #67460 - estebank:named-lts, r=nikomatsakis

Tweak impl signature mismatch errors involving `RegionKind::ReVar` lifetimes

Fix #66406, fix #72106.

```
error: `impl` item signature doesn't match `trait` item signature
  --> $DIR/trait-param-without-lifetime-constraint.rs:14:5
   |
LL |     fn get_relation(&self) -> To;
   |     ----------------------------- expected `fn(&Article) -> &ProofReader`
...
LL |     fn get_relation(&self) -> &ProofReader {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ found `fn(&Article) -> &ProofReader`
   |
   = note: expected `fn(&Article) -> &ProofReader`
              found `fn(&Article) -> &ProofReader`
help: the lifetime requirements from the `impl` do not correspond to the requirements in the `trait`
  --> $DIR/trait-param-without-lifetime-constraint.rs:10:31
   |
LL |     fn get_relation(&self) -> To;
   |                               ^^ consider borrowing this type parameter in the trait
```

r? @nikomatsakis

4 years agoAuto merge of #72671 - flip1995:clippyup, r=Xanewok
bors [Fri, 29 May 2020 11:16:45 +0000 (11:16 +0000)]
Auto merge of #72671 - flip1995:clippyup, r=Xanewok

Update Clippy, RLS, and rustfmt

r? @Dylan-DPC

This makes Clippy test-pass again: 3089c3b

Otherwise this includes bugfixes and a few new lints.

Fixes #72231
Fixes #72232

4 years agoAuto merge of #72727 - JohnTitor:rollup-nni16m2, r=JohnTitor
bors [Fri, 29 May 2020 07:52:06 +0000 (07:52 +0000)]
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

4 years agoAdd fibersapi feature to winapi in rustc-workspace-hack
flip1995 [Fri, 29 May 2020 06:19:58 +0000 (08:19 +0200)]
Add fibersapi feature to winapi in rustc-workspace-hack

Co-authored-by: Eric Huss <ehuss@users.noreply.github.com>
4 years agoRollup merge of #72720 - poliorcetics:clarify-take-doc, r=joshtriplett
Yuki Okushi [Fri, 29 May 2020 06:07:11 +0000 (15:07 +0900)]
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.

4 years agoRollup merge of #72713 - rust-lang:jonas-schievink-patch-2, r=Mark-Simulacrum
Yuki Okushi [Fri, 29 May 2020 06:07:09 +0000 (15:07 +0900)]
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.

4 years agoRollup merge of #72711 - lcnr:fixme-heyho, r=jonas-schievink
Yuki Okushi [Fri, 29 May 2020 06:07:07 +0000 (15:07 +0900)]
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.

4 years agoRollup merge of #72547 - alex:patch-1, r=oli-obk
Yuki Okushi [Fri, 29 May 2020 06:07:05 +0000 (15:07 +0900)]
Rollup merge of #72547 - alex:patch-1, r=oli-obk

Added a codegen test for a recent optimization for overflow-checks=on

Closes #58692

4 years agoRollup merge of #72534 - chrissimpkins:fix-72373, r=estebank
Yuki Okushi [Fri, 29 May 2020 06:07:04 +0000 (15:07 +0900)]
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

4 years agoRollup merge of #72495 - GuillaumeGomez:cleanup-e0601, r=Dylan-DPC
Yuki Okushi [Fri, 29 May 2020 06:07:02 +0000 (15:07 +0900)]
Rollup merge of #72495 - GuillaumeGomez:cleanup-e0601, r=Dylan-DPC

Improve E0601 explanation

r? @Dylan-DPC

4 years agoRollup merge of #72452 - Lucretiel:precision-doc, r=dtolnay
Yuki Okushi [Fri, 29 May 2020 06:06:59 +0000 (15:06 +0900)]
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

4 years agoRollup merge of #72324 - Amanieu:atomic_minmax, r=dtolnay
Yuki Okushi [Fri, 29 May 2020 06:06:57 +0000 (15:06 +0900)]
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.

4 years agoRollup merge of #72288 - vorner:stabilize-weak-into-raw, r=dtolnay
Yuki Okushi [Fri, 29 May 2020 06:06:55 +0000 (15:06 +0900)]
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).

4 years agoRollup merge of #71843 - sfackler:cas-loop-cleanup, r=dtolnay
Yuki Okushi [Fri, 29 May 2020 06:06:53 +0000 (15:06 +0900)]
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.

4 years agoRollup merge of #71633 - a1phyr:infallible_error, r=dtolnay
Yuki Okushi [Fri, 29 May 2020 06:06:48 +0000 (15:06 +0900)]
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

4 years agoAuto merge of #72506 - Nadrieril:fix-72476, r=matthewjasper
bors [Fri, 29 May 2020 04:05:03 +0000 (04:05 +0000)]
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 https://github.com/rust-lang/rust/commit/e5a2cd526a6ad92b90dda81104abc7adf4c83495. 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.

4 years agoClarify the documentation of take
Alexis Bourget [Fri, 29 May 2020 01:29:01 +0000 (03:29 +0200)]
Clarify the documentation of take

4 years agoAuto merge of #72716 - Dylan-DPC:rollup-wdj97ab, r=Dylan-DPC
bors [Fri, 29 May 2020 00:42:59 +0000 (00:42 +0000)]
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

4 years agoRollup merge of #72702 - petrochenkov:unudeps, r=estebank
Dylan DPC [Fri, 29 May 2020 00:33:29 +0000 (02:33 +0200)]
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.

4 years agoRollup merge of #72697 - ehuss:rm-rustc-ux-guidelines, r=nikomatsakis
Dylan DPC [Fri, 29 May 2020 00:33:28 +0000 (02:33 +0200)]
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.

4 years agoRollup merge of #72695 - jclulow:illumos-llvm-catchup, r=nikic
Dylan DPC [Fri, 29 May 2020 00:33:26 +0000 (02:33 +0200)]
Rollup merge of #72695 - jclulow:illumos-llvm-catchup, r=nikic

update data layout for illumos x86

In a recent change, 8b199222cc92667cd0e57595ad435cd0a7526af8,
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

4 years agoRollup merge of #72682 - JohnTitor:mir-tests, r=RalfJung
Dylan DPC [Fri, 29 May 2020 00:33:24 +0000 (02:33 +0200)]
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

4 years agoRollup merge of #72674 - Mark-Simulacrum:clippy-always-test-pass, r=oli-obk
Dylan DPC [Fri, 29 May 2020 00:33:23 +0000 (02:33 +0200)]
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.

4 years agoRollup merge of #72670 - rust-lang:jonas-schievink-patch-1, r=nikomatsakis
Dylan DPC [Fri, 29 May 2020 00:33:21 +0000 (02:33 +0200)]
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)

4 years agoRollup merge of #72667 - RalfJung:unaligned-ref-test, r=nikomatsakis
Dylan DPC [Fri, 29 May 2020 00:33:19 +0000 (02:33 +0200)]
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.

4 years agoRollup merge of #72645 - ldm0:mailmap, r=nikomatsakis
Dylan DPC [Fri, 29 May 2020 00:33:18 +0000 (02:33 +0200)]
Rollup merge of #72645 - ldm0:mailmap, r=nikomatsakis

Add myself to .mailmap

4 years agoRollup merge of #72636 - marmeladema:resolver-outputs-def-id, r=petrochenkov
Dylan DPC [Fri, 29 May 2020 00:33:16 +0000 (02:33 +0200)]
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

4 years agoRollup merge of #72605 - GuillaumeGomez:cleanup-e0617, r=Dylan-DPC
Dylan DPC [Fri, 29 May 2020 00:33:14 +0000 (02:33 +0200)]
Rollup merge of #72605 - GuillaumeGomez:cleanup-e0617, r=Dylan-DPC

Add working example for E0617 explanation

r? @Dylan-DPC

4 years agoRollup merge of #72466 - lzutao:stabilize_str-strip, r=dtolnay
Dylan DPC [Fri, 29 May 2020 00:33:11 +0000 (02:33 +0200)]
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

4 years agoRollup merge of #72239 - hch12907:master, r=dtolnay
Dylan DPC [Fri, 29 May 2020 00:33:07 +0000 (02:33 +0200)]
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

4 years agoWhitelist #[allow_internal_unstable]
Jonas Schievink [Thu, 28 May 2020 23:19:33 +0000 (01:19 +0200)]
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.

4 years agoremove redundant `mk_const`
Bastian Kauschke [Thu, 28 May 2020 21:59:54 +0000 (23:59 +0200)]
remove redundant `mk_const`

4 years agoUpdate RLS to clippyup branch
flip1995 [Thu, 28 May 2020 18:04:49 +0000 (20:04 +0200)]
Update RLS to clippyup branch

4 years agoAccount for `Self` as a type param
Esteban Küber [Thu, 28 May 2020 17:35:48 +0000 (10:35 -0700)]
Account for `Self` as a type param

4 years agoUpdate src/librustdoc/core.rs
Niko Matsakis [Thu, 28 May 2020 17:23:33 +0000 (13:23 -0400)]
Update src/librustdoc/core.rs

4 years agorustc_lint: Remove `unused_crate_dependencies` from the `unused` group
Vadim Petrochenkov [Thu, 28 May 2020 16:44:53 +0000 (19:44 +0300)]
rustc_lint: Remove `unused_crate_dependencies` from the `unused` group

4 years agoRemove rustc-ux-guidelines
Eric Huss [Thu, 28 May 2020 15:23:23 +0000 (08:23 -0700)]
Remove rustc-ux-guidelines

4 years agoTemp fix: don't run cargo lint tests in rustc test suite
flip1995 [Thu, 28 May 2020 15:19:30 +0000 (17:19 +0200)]
Temp fix: don't run cargo lint tests in rustc test suite

4 years agoupdate data layout for illumos x86
Joshua M. Clulow [Thu, 28 May 2020 15:09:10 +0000 (08:09 -0700)]
update data layout for illumos x86

In a recent change, 8b199222cc92667cd0e57595ad435cd0a7526af8,
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

4 years agoUpdate Cargo.lock
flip1995 [Thu, 28 May 2020 13:47:54 +0000 (15:47 +0200)]
Update Cargo.lock

4 years agoSet CFG_RELEASE for tools in bootstrap/tool.rs
Igor Matuszewski [Thu, 28 May 2020 08:44:01 +0000 (10:44 +0200)]
Set CFG_RELEASE for tools in bootstrap/tool.rs

Since rustc-ap-* v659 we now need to set CFG_RELEASE for
rustc-ap-rustc_attr for `#[cfg(version(...))]` to work.

Co-authored-by: Eric Huss <ehuss@users.noreply.github.com>
4 years agosubmodules: Update RLS and Rustfmt
Igor Matuszewski [Thu, 21 May 2020 13:39:52 +0000 (15:39 +0200)]
submodules: Update RLS and Rustfmt

4 years agoMerge commit '7ea7cd165ad6705603852771bf82cc2fd6560db5' into clippyup2
flip1995 [Thu, 28 May 2020 13:45:24 +0000 (15:45 +0200)]
Merge commit '7ea7cd165ad6705603852771bf82cc2fd6560db5' into clippyup2

4 years agoAdd test for #66930
Yuki Okushi [Thu, 28 May 2020 07:43:03 +0000 (16:43 +0900)]
Add test for #66930

4 years agoFIx off-by-one in char::steps_between
CAD97 [Thu, 28 May 2020 05:11:46 +0000 (01:11 -0400)]
FIx off-by-one in char::steps_between

4 years agoreview comments: change wording and visual output
Esteban Küber [Thu, 28 May 2020 03:58:05 +0000 (20:58 -0700)]
review comments: change wording and visual output

4 years agoFix rebase
Esteban Küber [Thu, 28 May 2020 02:24:09 +0000 (19:24 -0700)]
Fix rebase

4 years agoAdd additional checks for isize overflow
Joe Richey [Wed, 27 May 2020 06:14:55 +0000 (23:14 -0700)]
Add additional checks for isize overflow

We now perform the correct checks even if the pointer size differs
between the host and target.

Signed-off-by: Joe Richey <joerichey@google.com>
4 years agoAuto merge of #72494 - lcnr:predicate-cleanup, r=nikomatsakis
bors [Thu, 28 May 2020 00:18:52 +0000 (00:18 +0000)]
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

4 years agofix rebase
Esteban Küber [Tue, 14 Apr 2020 04:31:21 +0000 (21:31 -0700)]
fix rebase

4 years agofix rebase
Esteban Küber [Mon, 30 Mar 2020 02:53:58 +0000 (19:53 -0700)]
fix rebase

4 years agoModify wording
Esteban Küber [Mon, 17 Feb 2020 01:59:29 +0000 (17:59 -0800)]
Modify wording

4 years agofix rebase
Esteban Küber [Tue, 7 Jan 2020 20:05:34 +0000 (12:05 -0800)]
fix rebase

4 years agoreview comment: use FxIndexSet
Esteban Küber [Fri, 27 Dec 2019 21:52:20 +0000 (13:52 -0800)]
review comment: use FxIndexSet

4 years agoreview comments
Esteban Küber [Mon, 23 Dec 2019 01:53:50 +0000 (17:53 -0800)]
review comments

4 years agoTweak output for mismatched impl item
Esteban Küber [Sun, 22 Dec 2019 21:53:01 +0000 (13:53 -0800)]
Tweak output for mismatched impl item

Detect type parameter that might require lifetime constraint.
Do not name `ReVar`s in expected/found output.
Reword text suggesting to check the lifetimes.

4 years agoName `RegionKind::ReVar` lifetimes in diagnostics
Esteban Küber [Fri, 20 Dec 2019 19:56:03 +0000 (11:56 -0800)]
Name `RegionKind::ReVar` lifetimes in diagnostics

4 years agoFix spacing of expected/found notes without a label
Esteban Küber [Fri, 20 Dec 2019 03:44:06 +0000 (19:44 -0800)]
Fix spacing of expected/found notes without a label

4 years agoWhitelist `unsafe_op_in_unsafe_fn` in rustdoc
LeSeulArtichaut [Wed, 27 May 2020 17:32:00 +0000 (19:32 +0200)]
Whitelist `unsafe_op_in_unsafe_fn` in rustdoc

4 years agoClippy should always build
Mark Rousskov [Wed, 27 May 2020 21:25:47 +0000 (17:25 -0400)]
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.

4 years agoFix incorrect comment in generator test
Jonas Schievink [Wed, 27 May 2020 19:38:38 +0000 (21:38 +0200)]
Fix incorrect comment in generator test

4 years agoAdd working example for E0617 explanation
Guillaume Gomez [Tue, 26 May 2020 08:33:40 +0000 (10:33 +0200)]
Add working example for E0617 explanation

4 years agoAuto merge of #5652 - rust-lang:flip1995-patch-1, r=yaahc
bors [Wed, 27 May 2020 18:55:57 +0000 (18:55 +0000)]
Auto merge of #5652 - rust-lang:flip1995-patch-1, r=yaahc

Fail bors on missing changelog

Bors stopped failed if the changelog was missing. Instead it waited 2h (?) and then timed out.

changelog: none

4 years agoUse `LintId`s to check for gated lints
LeSeulArtichaut [Sat, 23 May 2020 21:11:55 +0000 (23:11 +0200)]
Use `LintId`s to check for gated lints

4 years agoFix import
LeSeulArtichaut [Sat, 23 May 2020 20:39:07 +0000 (22:39 +0200)]
Fix import

4 years agoAdd explanation about taking the minimum of the two lints
LeSeulArtichaut [Sat, 23 May 2020 20:32:40 +0000 (22:32 +0200)]
Add explanation about taking the minimum of the two lints

4 years agoDo not hardcode lint name
LeSeulArtichaut [Sat, 23 May 2020 20:22:01 +0000 (22:22 +0200)]
Do not hardcode lint name

4 years agoMark deduplicated errors as expected in gate test
LeSeulArtichaut [Sat, 23 May 2020 20:15:14 +0000 (22:15 +0200)]
Mark deduplicated errors as expected in gate test

4 years agoAdd tests for packed borrows in unsafe fns
LeSeulArtichaut [Fri, 22 May 2020 18:21:26 +0000 (20:21 +0200)]
Add tests for packed borrows in unsafe fns

4 years agoFix and bless tests
LeSeulArtichaut [Thu, 21 May 2020 21:53:12 +0000 (23:53 +0200)]
Fix and bless tests

4 years agoFix wrong conflict resolution
LeSeulArtichaut [Tue, 19 May 2020 10:16:40 +0000 (12:16 +0200)]
Fix wrong conflict resolution

4 years agoUse the lowest of `unsafe_op_in_unsafe_fn` and `safe_borrow_packed` for packed borrow...
LeSeulArtichaut [Mon, 18 May 2020 22:19:31 +0000 (00:19 +0200)]
Use the lowest of `unsafe_op_in_unsafe_fn` and `safe_borrow_packed` for packed borrows in unsafe fns

4 years agoFix inverted `if` condition
LeSeulArtichaut [Mon, 18 May 2020 22:18:50 +0000 (00:18 +0200)]
Fix inverted `if` condition

4 years agoAdd more cases to the test
LeSeulArtichaut [Thu, 14 May 2020 18:37:23 +0000 (20:37 +0200)]
Add more cases to the test

4 years agoApply suggestions from code review
LeSeulArtichaut [Wed, 13 May 2020 21:43:21 +0000 (23:43 +0200)]
Apply suggestions from code review

4 years agoAdd tests
LeSeulArtichaut [Sun, 3 May 2020 21:11:58 +0000 (23:11 +0200)]
Add tests

4 years agoImplement RFC 2585
LeSeulArtichaut [Sun, 3 May 2020 21:11:34 +0000 (23:11 +0200)]
Implement RFC 2585

4 years agoAuto merge of #71996 - Marwes:detach_undo_log, r=nikomatsakis
bors [Wed, 27 May 2020 18:31:45 +0000 (18:31 +0000)]
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)

4 years agoexpand unaligned_references test
Ralf Jung [Wed, 27 May 2020 18:31:17 +0000 (20:31 +0200)]
expand unaligned_references test

4 years agoimprove diagnostics suggestion for missing `@` in slice id binding to rest pattern
Chris Simpkins [Wed, 27 May 2020 18:09:54 +0000 (14:09 -0400)]
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

4 years agoStore `LocalDefId` directly in `rustc_resolve::Resolver` where possible
marmeladema [Sun, 24 May 2020 11:18:22 +0000 (12:18 +0100)]
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`

4 years agoAuto merge of #72601 - JohnTitor:deps, r=Mark-Simulacrum
bors [Wed, 27 May 2020 14:48:33 +0000 (14:48 +0000)]
Auto merge of #72601 - JohnTitor:deps, r=Mark-Simulacrum

Update transitive dependencies to remove some deps

Similar to #71919, this removes some (duplicate) dependencies.

4 years agoAuto merge of #5631 - ThibsG:ExtendUselessConversion, r=matthiaskrgr
bors [Wed, 27 May 2020 13:06:59 +0000 (13:06 +0000)]
Auto merge of #5631 - ThibsG:ExtendUselessConversion, r=matthiaskrgr

Extend useless conversion

This PR extends `useless_conversion` lint with `TryFrom` and `TryInto`

fixes: #5344

changelog: Extend `useless_conversion` with `TryFrom` and `TryInto`

4 years agoAuto merge of #5653 - matthiaskrgr:rustup_47, r=flip1995
bors [Wed, 27 May 2020 12:30:32 +0000 (12:30 +0000)]
Auto merge of #5653 - matthiaskrgr:rustup_47, r=flip1995

rustup https://github.com/rust-lang/rust/pull/72342, allow unused_crate_dependencies

changelog: none

4 years agorustup https://github.com/rust-lang/rust/pull/72342, allow unused_crate_dependencies
Matthias Krüger [Wed, 27 May 2020 11:55:57 +0000 (13:55 +0200)]
rustup https://github.com/rust-lang/rust/pull/72342, allow unused_crate_dependencies

4 years agoAuto merge of #72639 - Dylan-DPC:rollup-76upj51, r=Dylan-DPC
bors [Wed, 27 May 2020 11:18:53 +0000 (11:18 +0000)]
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

4 years agoAdd myself to .mailmap
Donough Liu [Wed, 27 May 2020 08:16:27 +0000 (16:16 +0800)]
Add myself to .mailmap

4 years agoRollup merge of #72626 - phimuemue:doubleendediter_doc, r=dtolnay
Dylan DPC [Wed, 27 May 2020 01:09:23 +0000 (03:09 +0200)]
Rollup merge of #72626 - phimuemue:doubleendediter_doc, r=dtolnay

Add remark regarding DoubleEndedIterator

While reviewing https://github.com/rust-itertools/itertools/pull/442/commits/14293bd18f01b6bd4856816222f808f46603eccd#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.

4 years agoRollup merge of #72610 - GuillaumeGomez:revert-unwanted-css-changes, r=Dylan-DPC
Dylan DPC [Wed, 27 May 2020 01:09:21 +0000 (03:09 +0200)]
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

4 years agoRollup merge of #72606 - GuillaumeGomez:cell-example-update, r=Dylan-DPC
Dylan DPC [Wed, 27 May 2020 01:09:19 +0000 (03:09 +0200)]
Rollup merge of #72606 - GuillaumeGomez:cell-example-update, r=Dylan-DPC

Small cell example update

r? @Dylan-DPC

4 years agoRollup merge of #72548 - rossmacarthur:add-mcve-for-50687, r=nikomatsakis
Dylan DPC [Wed, 27 May 2020 01:09:15 +0000 (03:09 +0200)]
Rollup merge of #72548 - rossmacarthur:add-mcve-for-50687, r=nikomatsakis

Add test for old compiler ICE when using `Borrow`

The original issue was caused by implementing `Borrow` on a local type and using the tokio-reactor crate which had this impl: https://github.com/tokio-rs/tokio/blob/tokio-0.1.4/tokio-reactor/src/poll_evented.rs#L547-L577

This causes an ICE on Rust 1.27.0:

```console
$ RUSTUP_TOOLCHAIN=1.27.0 rustc src/test/ui/issues/issue-50687-ice-on-borrow.rs
error: internal compiler error: librustc/traits/structural_impls.rs:180: impossible case reached

thread 'main' panicked at 'Box<Any>', librustc_errors/lib.rs:554:9
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: aborting due to previous error

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.27.0 (3eda71b00 2018-06-19) running on x86_64-apple-darwin
```

Closes #50687

4 years agoRollup merge of #72533 - Diggsey:db-fix-arc-ub2, r=dtolnay
Dylan DPC [Wed, 27 May 2020 01:09:12 +0000 (03:09 +0200)]
Rollup merge of #72533 - Diggsey:db-fix-arc-ub2, r=dtolnay

Resolve UB in Arc/Weak interaction (2)

Use raw pointers to avoid making any assertions about the data field.

Follow up from #72479, see that PR for more detail on the motivation.

@RalfJung I was able to avoid a lot of the changes to `Weak`, by making a helper type (`WeakInner`) - because of auto-deref and because the fields have the same name, the rest of the code continues to compile.