]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoRollup merge of #81917 - rust-lang:relnotes-1.51.0, r=Mark-Simulacrum
Yuki Okushi [Tue, 23 Mar 2021 01:15:39 +0000 (10:15 +0900)]
Rollup merge of #81917 - rust-lang:relnotes-1.51.0, r=Mark-Simulacrum

Update RELEASES.md for 1.51.0

### [Rendered](https://github.com/rust-lang/rust/blob/relnotes-1.51.0/RELEASES.md)

r? `@Mark-Simulacrum`
cc `@rust-lang/release`

3 years agoRollup merge of #80705 - tspiteri:italic-and-update-SourceCodePro, r=GuillaumeGomez
Yuki Okushi [Tue, 23 Mar 2021 01:15:38 +0000 (10:15 +0900)]
Rollup merge of #80705 - tspiteri:italic-and-update-SourceCodePro, r=GuillaumeGomez

Update Source Code Pro and include italics

Fixes #65502.

#65665, a similar PR to this was merged but reverted because of https://github.com/rust-lang/rust/pull/65665#issuecomment-556860510.

The issue in that comment is the upstream issue https://github.com/adobe-fonts/source-code-pro/issues/217 which should now be fixed in the upstream since [2.032R-ro/1.052R-it/1.012R-VAR release](https://github.com/adobe-fonts/source-code-pro/releases/tag/2.032R-ro/1.052R-it/1.012R-VAR), so I think this can now be merged.

A couple of notes from the original PR:
* Since this PR changes the font set, I think docs.rs would have to be updated if this PR is merged.
* The fonts have a double extension (.ttf.woff); this is to keep the names consistent with the upstream font release which does that to distinguish these from the .otf.woff files (Source Code Pro otf renders poorly on older Windows system apps).

3 years agoAuto merge of #79278 - mark-i-m:stabilize-or-pattern, r=nikomatsakis
bors [Mon, 22 Mar 2021 19:48:27 +0000 (19:48 +0000)]
Auto merge of #79278 - mark-i-m:stabilize-or-pattern, r=nikomatsakis

Stabilize or_patterns (RFC 2535, 2530, 2175)

closes #54883

This PR stabilizes the or_patterns feature in Rust 1.53.

This is blocked on the following (in order):
- [x] The crater run in https://github.com/rust-lang/rust/pull/78935#issuecomment-731564021
- [x] The resolution of the unresolved questions and a second crater run (https://github.com/rust-lang/rust/pull/78935#issuecomment-735412705)
    - It looks like we will need to pursue some sort of edition-based transition for `:pat`.
- [x] Nomination and discussion by T-lang
- [x] Implement new behavior for `:pat` based on consensus (https://github.com/rust-lang/rust/pull/80100).
- [ ] An FCP on stabilization

EDIT: Stabilization report is in https://github.com/rust-lang/rust/pull/79278#issuecomment-772815177

3 years agoAuto merge of #83376 - Dylan-DPC:rollup-s2fsjwj, r=Dylan-DPC
bors [Mon, 22 Mar 2021 15:07:23 +0000 (15:07 +0000)]
Auto merge of #83376 - Dylan-DPC:rollup-s2fsjwj, r=Dylan-DPC

Rollup of 7 pull requests

Successful merges:

 - #82374 (Add license metadata for std dependencies)
 - #82683 (Document panicking cases for integer division and remainder)
 - #83272 (Clarify non-exact length in the Iterator::take documentation)
 - #83338 (Fix test for #82270)
 - #83351 (post-drop-elab check-const: explain why we still check qualifs)
 - #83367 (Improve error message for unassigned query provider)
 - #83372 (SplitInclusive is public API)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #83372 - eggyal:split-inclusive, r=Mark-Simulacrum
Dylan DPC [Mon, 22 Mar 2021 14:21:31 +0000 (15:21 +0100)]
Rollup merge of #83372 - eggyal:split-inclusive, r=Mark-Simulacrum

SplitInclusive is public API

3 years agoRollup merge of #83367 - richkadel:query-err-msg, r=jyn514
Dylan DPC [Mon, 22 Mar 2021 14:21:30 +0000 (15:21 +0100)]
Rollup merge of #83367 - richkadel:query-err-msg, r=jyn514

Improve error message for unassigned query provider

Fixes: #83122
r? `@jyn514`

This implements the change we agreed on. Thanks!

3 years agoRollup merge of #83351 - RalfJung:precise-const-drop, r=oli-obk
Dylan DPC [Mon, 22 Mar 2021 14:21:29 +0000 (15:21 +0100)]
Rollup merge of #83351 - RalfJung:precise-const-drop, r=oli-obk

post-drop-elab check-const: explain why we still check qualifs

r? `@oli-obk`

3 years agoRollup merge of #83338 - asquared31415:asm-syntax-test-fix, r=Dylan-DPC
Dylan DPC [Mon, 22 Mar 2021 14:21:27 +0000 (15:21 +0100)]
Rollup merge of #83338 - asquared31415:asm-syntax-test-fix, r=Dylan-DPC

Fix test for #82270

Fixes a test in #82270 to require the arm llvm component

3 years agoRollup merge of #83272 - kornelski:takedocs, r=dtolnay
Dylan DPC [Mon, 22 Mar 2021 14:21:26 +0000 (15:21 +0100)]
Rollup merge of #83272 - kornelski:takedocs, r=dtolnay

Clarify non-exact length in the Iterator::take documentation

There's an example which demonstrates incomplete length case, but it'd be best to explain it right from the start.

3 years agoRollup merge of #82683 - jturner314:int-div-rem-doc-panic, r=nikomatsakis
Dylan DPC [Mon, 22 Mar 2021 14:21:24 +0000 (15:21 +0100)]
Rollup merge of #82683 - jturner314:int-div-rem-doc-panic, r=nikomatsakis

Document panicking cases for integer division and remainder

This PR documents the cases when integer division and remainder operations panic. These operations panic in two cases: division by zero and overflow.

It's surprising that these operations always panic on overflow, unlike most other arithmetic operations, which panic on overflow only when `debug_assertions` is enabled. The panic on overflow for the remainder is also surprising because a return value of `0` would be reasonable in this case. ("Overflow" occurs only for `MIN % -1`.) Since the panics on overflow are somewhat surprising, they should be documented.

I guess it's worth asking: is panic on overflow (even when `debug_assertions` is disabled) the intended behavior? If not, what's the best way forward?

3 years agoRollup merge of #82374 - clehner:licenses, r=joshtriplett
Dylan DPC [Mon, 22 Mar 2021 14:21:23 +0000 (15:21 +0100)]
Rollup merge of #82374 - clehner:licenses, r=joshtriplett

Add license metadata for std dependencies

These five crates are in the dependency tree of `std` but lack license metadata:
- `alloc`
- `core`
- `panic_abort`
- `panic_unwind`
- `unwind`

Querying the dependency tree of `std` is a useful thing to be able to do, since these crates will typically be linked into Rust binaries. Tools show the license fields missing, as seen in https://github.com/rust-lang/rust/issues/67014#issuecomment-782704534. This PR adds the license field for the five crates, based on the license of the `std` package and this repo as a whole. I also added the `repository` and `descriptions` fields, since those seem useful. For `description`, I copied text from top-level comments for the respective modules - except for `unwind` which has none.

I also note that https://github.com/rust-lang/rust/pull/73530 attempted to add license metadata for all crates in this repo, but was rejected because there was question about some of them. I hope that this smaller change, focusing only on the runtime dependencies, will be easier to review.

cc `@Mark-Simulacrum` `@Lokathor`

3 years agoAuto merge of #83273 - cjgillot:endecode, r=michaelwoerister
bors [Mon, 22 Mar 2021 12:18:57 +0000 (12:18 +0000)]
Auto merge of #83273 - cjgillot:endecode, r=michaelwoerister

Simplify encoder and decoder

Extracted from https://github.com/rust-lang/rust/pull/83036 and https://github.com/rust-lang/rust/pull/82780.

3 years agoAuto merge of #82680 - jturner314:div_euclid-docs, r=JohnTitor
bors [Mon, 22 Mar 2021 09:37:50 +0000 (09:37 +0000)]
Auto merge of #82680 - jturner314:div_euclid-docs, r=JohnTitor

Fix inequality in docs for div_euclid

This commit fixes the statement of the inequality that the Euclidean remainder satisfies. (The remainder is guaranteed to be less than abs(rhs), not rhs.) It also rewords the documentation to make it a little easier to read.

(You might wonder why I've written `abs(rhs)` instead of `rhs.abs()`. Two reasons: first, the `rem_euclid` docs use `abs(rhs)` instead of `rhs.abs()`, and second, the absolute value here is the mathematical absolute value, not the the `.abs()` operation which may overflow.)

3 years agoSplitInclusive is public API
Alan Egerton [Mon, 22 Mar 2021 09:07:52 +0000 (09:07 +0000)]
SplitInclusive is public API

3 years agoAuto merge of #82855 - jyn514:no-temporaries, r=GuillaumeGomez
bors [Mon, 22 Mar 2021 06:45:33 +0000 (06:45 +0000)]
Auto merge of #82855 - jyn514:no-temporaries, r=GuillaumeGomez

Avoid temporary allocations in `render_assoc_item`

`render_assoc_item` came up as very hot in a profile of rustdoc on
`bevy`.  This avoids some temporary allocations just to calculate the
length of the header.

This should be a strict improvement, since all string formatting was
done twice before.

cc #82845

3 years agoImprove error message for unassigned query provider
Rich Kadel [Mon, 22 Mar 2021 06:04:07 +0000 (23:04 -0700)]
Improve error message for unassigned query provider

Fixes: 83122
3 years agoAuto merge of #83360 - Dylan-DPC:rollup-17xulpv, r=Dylan-DPC
bors [Mon, 22 Mar 2021 04:03:53 +0000 (04:03 +0000)]
Auto merge of #83360 - Dylan-DPC:rollup-17xulpv, r=Dylan-DPC

Rollup of 9 pull requests

Successful merges:

 - #80193 (stabilize `feature(osstring_ascii)`)
 - #80771 (Make NonNull::as_ref (and friends) return refs with unbound lifetimes)
 - #81607 (Implement TrustedLen and TrustedRandomAccess for Range<integer>, array::IntoIter, VecDequeue's iterators)
 - #82554 (Fix invalid slice access in String::retain)
 - #82686 (Move `std::sys::unix::platform` to `std::sys::unix::ext`)
 - #82771 (slice: Stabilize IterMut::as_slice.)
 - #83329 (Cleanup LLVM debuginfo module docs)
 - #83336 (Fix ICE with `use clippy::a::b;`)
 - #83350 (Download a more recent LLVM version if `src/version` is modified)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #83350 - jyn514:llvm-version, r=Mark-Simulacrum
Dylan DPC [Mon, 22 Mar 2021 01:20:33 +0000 (02:20 +0100)]
Rollup merge of #83350 - jyn514:llvm-version, r=Mark-Simulacrum

Download a more recent LLVM version if `src/version` is modified

When bumping the bootstrap version, the name of the generated LLVM
shared object file is changed, even though it's the same contents as
before. If bootstrap tries to use an older version, it will get linking
errors:

```
Building rustdoc for stage1 (x86_64-unknown-linux-gnu)
   Compiling rustdoc-tool v0.0.0 (/home/joshua/rustc/src/tools/rustdoc)
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" ... lots of args ...
  = note: /usr/bin/ld: cannot find -lLLVM-12-rust-1.53.0-nightly
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: could not compile `rustdoc-tool`
```

Helps with https://github.com/rust-lang/rust/issues/81930.

3 years agoRollup merge of #83336 - camelid:tool-mod-ice, r=petrochenkov
Dylan DPC [Mon, 22 Mar 2021 01:20:32 +0000 (02:20 +0100)]
Rollup merge of #83336 - camelid:tool-mod-ice, r=petrochenkov

Fix ICE with `use clippy::a::b;`

Fixes #83317.

3 years agoRollup merge of #83329 - camelid:debuginfo-doc-cleanup, r=davidtwco
Dylan DPC [Mon, 22 Mar 2021 01:20:31 +0000 (02:20 +0100)]
Rollup merge of #83329 - camelid:debuginfo-doc-cleanup, r=davidtwco

Cleanup LLVM debuginfo module docs

- Move debuginfo docs from `doc.rs` module to `doc.md` file
- Cleanup LLVM debuginfo module docs

3 years agoRollup merge of #82771 - emilio:iter-mut-as-slice, r=m-ou-se
Dylan DPC [Mon, 22 Mar 2021 01:20:30 +0000 (02:20 +0100)]
Rollup merge of #82771 - emilio:iter-mut-as-slice, r=m-ou-se

slice: Stabilize IterMut::as_slice.

Much like #72584.

As per #58957 there's no blocker for this, and I wanted to use this
today :-)

Closes #58957

3 years agoRollup merge of #82686 - CDirkx:unix-platform, r=m-ou-se
Dylan DPC [Mon, 22 Mar 2021 01:20:28 +0000 (02:20 +0100)]
Rollup merge of #82686 - CDirkx:unix-platform, r=m-ou-se

Move `std::sys::unix::platform` to `std::sys::unix::ext`

This moves the operating system dependent alias `platform` (`std::os::{linux, android, ...}`) from `std::sys::unix` to `std::sys::unix::ext` (a.k.a. `std::os::unix`), removing the need for compatibility code in `unix_ext` when documenting on another platform.

This is also a step in making it possible to properly move `std::sys::unix::ext` to `std::os::unix`, as ideally `std::sys` should not depend on the rest of `std`.

3 years agoRollup merge of #82554 - SkiFire13:fix-string-retain-unsoundness, r=m-ou-se
Dylan DPC [Mon, 22 Mar 2021 01:20:27 +0000 (02:20 +0100)]
Rollup merge of #82554 - SkiFire13:fix-string-retain-unsoundness, r=m-ou-se

Fix invalid slice access in String::retain

As noted in #78499, the previous fix was technically still unsound because it accessed elements of a slice outside its bounds (even though they were still inside the same allocation). This PR addresses that concern by switching to a dropguard approach.

3 years agoRollup merge of #81607 - the8472:trustedrandomaccess-all-the-things, r=m-ou-se
Dylan DPC [Mon, 22 Mar 2021 01:20:26 +0000 (02:20 +0100)]
Rollup merge of #81607 - the8472:trustedrandomaccess-all-the-things, r=m-ou-se

Implement TrustedLen and TrustedRandomAccess for Range<integer>, array::IntoIter, VecDequeue's iterators

This should make some `FromIterator` and `.zip()` specializations applicable in a few more cases.

``@rustbot`` label libs-impl

3 years agoRollup merge of #80771 - thomcc:nonnull-refmut, r=dtolnay
Dylan DPC [Mon, 22 Mar 2021 01:20:24 +0000 (02:20 +0100)]
Rollup merge of #80771 - thomcc:nonnull-refmut, r=dtolnay

Make NonNull::as_ref (and friends) return refs with unbound lifetimes

# Rationale:

1. The documentation for all of these functions claims that this is what the functions already do, as they all come with this comment:

    > You must enforce Rust's aliasing rules, *since the returned lifetime 'a is arbitrarily chosen* and does not necessarily reflect the actual lifetime of the data...

    So I think it's just a bug that they weren't this way already. Note that had it not been for this part, I wouldn't be making this PR, so if we decide we won't take this change, I'll follow it up with a docs PR to fix this.

2. This is how the equivalent raw pointer functions behave.

    They also take `self` and not `&self`/`&mut self`, but that can't be changed compatibly at this point. This is the next best thing.

3. Without this fix, often code that uses these methods will find it has to expand the lifetime of the result.

    (I can't speak for others but even in unsafe-heavy code, needing to do this unexpectedly is a huge red flag -- if Rust thinks something should have a specific lifetime, I assume it's for a reason)

### Can this cause existing code to be unsound?

I'm confident this can't cause new unsoundness since the reference exists for at most its lifetime, but you get a borrow checker error if you do something that would require/allow the reference to exist past its lifetime.

Additionally, the aliasing rules of a reference only applies while the reference exists.

This *must* be the case, as it is required by the rules used by safe code. (That said, the documentation in this file sort of contradicts it, but I think it's just ambiguity between the lifetime `'a` in `&'a T` and lifetime of the `&'a T` reference itself...)

We are increasing the lifetime of these references, but they should already have hard bounds on that lifetime, or they'd have borrow checker errors.

(CC ``@RalfJung`` because I have gone and done the mistake where I say something definitive about aliasing in Rust which is honestly outside the group of things I should make definitive comments about).

# Caveats

1. This is insta-stable (except for on the unstable functions ofc). I don't think there's any other alternative.

2. I don't believe this is a breaking change in practice. In theory someone could be assigning `NonNull::as_ref` to a function pointer of type `fn(&NonNull<T>) -> &T`. Now they'd need to use a slightly different function pointer type which is (probably) incompatible. This seems pathological, but I guess crater could be used if there are concerns.

3. This has no tests. The old version didn't either that I saw. I could add some stuff that fails to compile without it, if that would be useful.

4. Sometimes the NLL borrow checker gives up and decides lifetimes live till the end of the scope, as opposed to the range where they're used. If this change can cause this to happen more, then my soundness rationale is wrong, and it's likely breaking.

    In practice this seems super unlikely.

Anyway. That was a lot of typing.

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

3 years agoRollup merge of #80193 - zseri:stabilize-osstring-ascii, r=m-ou-se
Dylan DPC [Mon, 22 Mar 2021 01:20:23 +0000 (02:20 +0100)]
Rollup merge of #80193 - zseri:stabilize-osstring-ascii, r=m-ou-se

stabilize `feature(osstring_ascii)`

This PR stabilizes `feature(osstring_ascii)`.

Fixes #70516.

3 years agoAuto merge of #79846 - the8472:inplace-tra, r=m-ou-se
bors [Mon, 22 Mar 2021 01:16:29 +0000 (01:16 +0000)]
Auto merge of #79846 - the8472:inplace-tra, r=m-ou-se

Use TrustedRandomAccess for in-place iterators where possible

This can speed up in-place iterators containing simple casts and transmutes from `Copy` types to any type of same size. `!Copy` types can't be optimized since `TrustedRandomAccess`  isn't implemented for those iterators.

```
 name                  on.b ns/iter     o1.b ns/iter     diff ns/iter   diff %  speedup
 vec::bench_transmute  20 (40000 MB/s)  12 (66666 MB/s)            -8  -40.00%   x 1.67
```

3 years agodisable debug assertions in codegen test
The8472 [Sun, 21 Mar 2021 22:05:28 +0000 (23:05 +0100)]
disable debug assertions in codegen test

3 years agoBump slice_iter_mut_as_slice stable version.
Mara Bos [Sun, 21 Mar 2021 22:01:28 +0000 (23:01 +0100)]
Bump slice_iter_mut_as_slice stable version.

3 years agoAuto merge of #82834 - nikic:mutable-noalias, r=nagisa
bors [Sun, 21 Mar 2021 21:54:09 +0000 (21:54 +0000)]
Auto merge of #82834 - nikic:mutable-noalias, r=nagisa

Enable mutable noalias for LLVM >= 12

Enable mutable noalias by default on LLVM 12, as previously known miscompiles have been resolved. Now it's time to find the next one ;)

 * The `-Z mutable-noalias` option no longer has an explicit default and accepts `-Z mutable-noalias=yes` and `-Z mutable-noalias=no` to override the LLVM version based default behavior.
 * The decision on whether to apply the noalias attribute is moved into rustc_codegen_llvm. rustc_middle only provides us with the necessary information to make the decision.
 * `noalias` is not emitted for types that are `!Unpin`, as a heuristic for self-referential structures (see #54878 and #63818).

3 years agoFix ICE with `use clippy::a::b;`
Camelid [Sun, 21 Mar 2021 03:00:25 +0000 (20:00 -0700)]
Fix ICE with `use clippy::a::b;`

3 years agopost-drop-elab check-const: explain why we still check qualifs
Ralf Jung [Sun, 21 Mar 2021 17:09:53 +0000 (18:09 +0100)]
post-drop-elab check-const: explain why we still check qualifs

3 years agoUpdate doc/reference submodule
Nikita Popov [Sun, 21 Mar 2021 19:13:08 +0000 (20:13 +0100)]
Update doc/reference submodule

In particular this pulls in an update to the auto-deref
recursion_limit example, to no longer rely on the Freeze query.

3 years agoDon't compute optimized PointerKind for unoptimized builds
Nikita Popov [Fri, 19 Mar 2021 21:49:51 +0000 (22:49 +0100)]
Don't compute optimized PointerKind for unoptimized builds

This saves us both the Freeze/Unpin queries, and avoids placing
noalias attributes, which have a compile-time impact on LLVM
even in optnone builds (due to always_inline functions).

3 years agoadd codegen test
The8472 [Wed, 9 Dec 2020 00:08:11 +0000 (01:08 +0100)]
add codegen test

3 years agospecialize in-place collection further via TrustedRandomAccess
The8472 [Tue, 8 Dec 2020 22:21:27 +0000 (23:21 +0100)]
specialize in-place collection further via TrustedRandomAccess

This allows the optimizer to turn certain iterator pipelines such as

```rust
let vec = vec![0usize; 100];
vec.into_iter().map(|e| e as isize).collect::<Vec<_>>()
```

into a noop.

The optimization only applies when iterator sources are  `T: Copy`
since `impl TrustedRandomAccess for IntoIter<T>`.
No such requirement applies to the output type (`Iterator::Item`).

3 years agoadd transmute-via-iterators bench
The8472 [Wed, 2 Dec 2020 21:15:53 +0000 (22:15 +0100)]
add transmute-via-iterators bench

3 years agoimplement TrustedRandomAccess for array::IntoIter
The8472 [Sun, 31 Jan 2021 20:16:08 +0000 (21:16 +0100)]
implement TrustedRandomAccess for array::IntoIter

3 years agoimplement TrustedRandomAccess for Ranges over int types
The8472 [Sun, 31 Jan 2021 20:15:18 +0000 (21:15 +0100)]
implement TrustedRandomAccess for Ranges over int types

3 years agouse BITS constant
The8472 [Sun, 31 Jan 2021 20:13:04 +0000 (21:13 +0100)]
use BITS constant

3 years agoimplement TrustedLen and TrustedRandomAccess for VecDeque iterators
The8472 [Sun, 31 Jan 2021 20:12:43 +0000 (21:12 +0100)]
implement TrustedLen and TrustedRandomAccess for VecDeque iterators

3 years agoEnable mutable noalias by default for LLVM 12
Nikita Popov [Thu, 18 Mar 2021 21:50:58 +0000 (22:50 +0100)]
Enable mutable noalias by default for LLVM 12

We don't have any known noalias bugs for LLVM 12 ... yet.

3 years agoDon't consider !Unpin references as noalias
Nikita Popov [Thu, 18 Mar 2021 21:44:36 +0000 (22:44 +0100)]
Don't consider !Unpin references as noalias

Such structures may contain self-references, in which case the
same location may be accessible through a pointer that is not
based-on the noalias pointer.

This is still grey area as far as language semantics are concerned,
but checking for !Unpin as an indicator for self-referential
sturctures seems like a good approach for the meantime.

3 years agoConvert -Z mutable-noalias to Optional<bool>
Nikita Popov [Thu, 18 Mar 2021 21:10:36 +0000 (22:10 +0100)]
Convert -Z mutable-noalias to Optional<bool>

The default value will dependend on the LLVM version in the future,
so don't specify one to start with.

3 years agoMove decision aboute noalias into codegen_llvm
Nikita Popov [Thu, 18 Mar 2021 20:50:28 +0000 (21:50 +0100)]
Move decision aboute noalias into codegen_llvm

The frontend shouldn't be deciding whether or not to use mutable
noalias attributes, as this is a pure LLVM concern. Only provide
the necessary information and do the actual decision in
codegen_llvm.

3 years agoBump osstring_ascii stabilization version to 1.53.0.
Mara Bos [Sun, 21 Mar 2021 16:49:14 +0000 (17:49 +0100)]
Bump osstring_ascii stabilization version to 1.53.0.

3 years agoAuto merge of #83053 - oli-obk:const_stab_version, r=m-ou-se
bors [Sun, 21 Mar 2021 16:21:39 +0000 (16:21 +0000)]
Auto merge of #83053 - oli-obk:const_stab_version, r=m-ou-se

Fix const stability `since` versions.

fixes #82085

r? `@m-ou-se`

3 years agoDownload a more recent LLVM version if `src/version` is modified
Joshua Nelson [Sun, 21 Mar 2021 16:10:34 +0000 (12:10 -0400)]
Download a more recent LLVM version if `src/version` is modified

When bumping the bootstrap version, the name of the generated LLVM
shared object file is changed, even though it's the same contents as
before. If bootstrap tries to use an older version, it will get linking
errors:

```
Building rustdoc for stage1 (x86_64-unknown-linux-gnu)
   Compiling rustdoc-tool v0.0.0 (/home/joshua/rustc/src/tools/rustdoc)
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" ... lots of args ...
  = note: /usr/bin/ld: cannot find -lLLVM-12-rust-1.53.0-nightly
          clang: error: linker command failed with exit code 1 (use -v to see invocation)

error: could not compile `rustdoc-tool`
```

3 years agoAuto merge of #83339 - Aaron1011:deep-recollect, r=petrochenkov
bors [Sun, 21 Mar 2021 13:00:22 +0000 (13:00 +0000)]
Auto merge of #83339 - Aaron1011:deep-recollect, r=petrochenkov

Perform 'deep recollection' in test helper macros

Currently, the print helper macro performs 'recollection' by doing
`token_stream.into_iter().collect()`. However, this will not affect
nonterminals that occur nested inside delimited groups, since the
wrapping delimited group will be left untouched.

This commit adds 'deep recollection', which recursively recollects every
delimited group in the token stream. As with normal recollection, we
only print out something if deep recollection results in a different
stringified token stream.

This is useful for catching bugs where we update the AST of a
nonterminal (which affects pretty-printing), but do not update the
attatched `TokenStream`

3 years agoPerform 'deep recollection' in test helper macros
Aaron Hill [Sun, 21 Mar 2021 04:17:19 +0000 (00:17 -0400)]
Perform 'deep recollection' in test helper macros

Currently, the print helper macro performs 'recollection' by doing
`token_stream.into_iter().collect()`. However, this will not affect
nonterminals that occur nested inside delimited groups, since the
wrapping delimited group will be left untouched.

This commit adds 'deep recollection', which recursively recollects every
delimited group in the token stream. As with normal recollection, we
only print out something if deep recollection results in a different
stringified token stream.

This is useful for catching bugs where we update the AST of a
nonterminal (which affects pretty-printing), but do not update the
attatched `TokenStream`

3 years agoadd arm llvm requirement
asquared31415 [Sun, 21 Mar 2021 03:54:13 +0000 (23:54 -0400)]
add arm llvm requirement

3 years agoAuto merge of #83333 - Dylan-DPC:rollup-0rdt6sz, r=Dylan-DPC
bors [Sun, 21 Mar 2021 03:36:22 +0000 (03:36 +0000)]
Auto merge of #83333 - Dylan-DPC:rollup-0rdt6sz, r=Dylan-DPC

Rollup of 6 pull requests

Successful merges:

 - #82707 (const_evaluatable_checked: Stop eagerly erroring in `is_const_evaluatable`)
 - #83040 (extract `ConstKind::Unevaluated` into a struct)
 - #83280 (Fix pluralization in keyword docs)
 - #83289 (Move some tests to more reasonable directories - 5)
 - #83306 (Extend `proc_macro_back_compat` lint to `js-sys`)
 - #83327 (Extend comment in `UsedLocals::visit_lhs`)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #83327 - tmiasko:visit-lhs, r=davidtwco
Dylan DPC [Sun, 21 Mar 2021 01:01:40 +0000 (02:01 +0100)]
Rollup merge of #83327 - tmiasko:visit-lhs, r=davidtwco

Extend comment in `UsedLocals::visit_lhs`

3 years agoRollup merge of #83306 - Aaron1011:js-sys-lint, r=petrochenkov
Dylan DPC [Sun, 21 Mar 2021 01:01:39 +0000 (02:01 +0100)]
Rollup merge of #83306 - Aaron1011:js-sys-lint, r=petrochenkov

Extend `proc_macro_back_compat` lint to `js-sys`

With this PR, we now lint for all cases where we perform some kind of
proc-macro back-compat hack.

The `js-sys` had an internal fix made to properly handle
`None`-delimited groups, so we need to manually check the version in the
filename. As a result, we no longer apply the back-compat hack to cases
where the version number is missing file the file path. This should not
affect any users of the `crates.io` crate.

3 years agoRollup merge of #83289 - c410-f3r:tests-tests-tests, r=petrochenkov
Dylan DPC [Sun, 21 Mar 2021 01:01:38 +0000 (02:01 +0100)]
Rollup merge of #83289 - c410-f3r:tests-tests-tests, r=petrochenkov

Move some tests to more reasonable directories - 5

cc #73494

Threshold is 0.95. Next time I promise I will take a look into the special/misclassified directories.

- [issues/issue-23208.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-23208.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/23208)</sup>: associated-types 0.951
- [weird-exprs.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/weird-exprs.rs) <sup>unknown</sup>: destructuring-assignment 0.958
- [issues/issue-1701.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-1701.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/1701)</sup>: structs-enums 0.974
- [issues/issue-48508-aux.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-48508-aux.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/48508)</sup>: numbers-arithmetic 0.991
- [fn_must_use.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/fn_must_use.rs) <sup>unknown</sup>: lint 1.000
- [mir_check_nonconst.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/mir_check_nonconst.rs) <sup>unknown</sup>: consts 1.002
- [issues/issue-52060.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-52060.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/52060)</sup>: consts 1.017
- [issues/issue-45729-unsafe-in-generator.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-45729-unsafe-in-generator.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/45729)</sup>: generator 1.024
- [issues/issue-10392.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-10392.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/10392)</sup>: pattern 1.039
- [no-implicit-prelude.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/no-implicit-prelude.rs) <sup>unknown</sup>: resolve 1.071
- [issues/issue-68000-unicode-ident-after-missing-comma.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-68000-unicode-ident-after-missing-comma.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/68000)</sup>: parser 1.079
- [shadow.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/shadow.rs) <sup>unknown</sup>: binding 1.099
- [issues/issue-65611.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-65611.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/65611)</sup>: consts 1.139
- [concat-rpass.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/concat-rpass.rs) <sup>unknown</sup>: macros 1.194
- [issues/issue-31597.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-31597.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/31597)</sup>: associated-types 1.195
- [issues/issue-78372.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/issues/issue-78372.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/78372)</sup>: resolve 1.426
- [impl-trait-in-bindings-issue-73003.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/impl-trait-in-bindings-issue-73003.rs) <sup>[issue](https://github.com/rust-lang/rust/issues/73003)</sup>: impl-trait 1.471
- [impl-trait-in-bindings.rs](https://github.com/rust-lang/rust/blob/master/src/test/ui/impl-trait-in-bindings.rs) <sup>unknown</sup>: impl-trait 2.500

r? `@petrochenkov`

3 years agoRollup merge of #83280 - starthal:fix-typo-keyword-docs, r=dtolnay
Dylan DPC [Sun, 21 Mar 2021 01:01:37 +0000 (02:01 +0100)]
Rollup merge of #83280 - starthal:fix-typo-keyword-docs, r=dtolnay

Fix pluralization in keyword docs

3 years agoRollup merge of #83040 - lcnr:unused-ct-substs, r=oli-obk
Dylan DPC [Sun, 21 Mar 2021 01:01:36 +0000 (02:01 +0100)]
Rollup merge of #83040 - lcnr:unused-ct-substs, r=oli-obk

extract `ConstKind::Unevaluated` into a struct

r? `@oli-obk`

3 years agoRollup merge of #82707 - BoxyUwU:errooaaar, r=oli-obk
Dylan DPC [Sun, 21 Mar 2021 01:01:34 +0000 (02:01 +0100)]
Rollup merge of #82707 - BoxyUwU:errooaaar, r=oli-obk

const_evaluatable_checked: Stop eagerly erroring in `is_const_evaluatable`

Fixes #82279

We don't want to be emitting errors inside of is_const_evaluatable because we may call this during selection where it should be able to fail silently

There were two errors being emitted in `is_const_evaluatable`. The one causing the compile error in #82279 was inside the match arm for `FailureKind::MentionsParam` but I moved the other error being emitted too since it made things cleaner imo

The `NotConstEvaluatable` enum \*should\* have a fourth variant for when we fail to evaluate a concrete const, e.g. `0 - 1` but that cant happen until #81339

cc `@oli-obk` `@lcnr`
r? `@nikomatsakis`

3 years agoAuto merge of #83324 - Mark-Simulacrum:nextrel, r=Mark-Simulacrum
bors [Sun, 21 Mar 2021 00:50:13 +0000 (00:50 +0000)]
Auto merge of #83324 - Mark-Simulacrum:nextrel, r=Mark-Simulacrum

Bump to 1.53.0

r? `@Mark-Simulacrum`

3 years agoCleanup LLVM debuginfo module docs
Camelid [Sat, 20 Mar 2021 21:21:02 +0000 (14:21 -0700)]
Cleanup LLVM debuginfo module docs

* Use Markdown list syntax and unindent a bit to prevent Markdown
  interpreting the nested lists as code blocks
* A few more small typographical cleanups

3 years agoMove debuginfo docs from `doc.rs` module to `doc.md` file
Camelid [Sat, 20 Mar 2021 21:23:38 +0000 (14:23 -0700)]
Move debuginfo docs from `doc.rs` module to `doc.md` file

And use `#[doc = include_str!("doc.md")]` in `mod.rs` so the docs are
rendered as if they were inline in the root module.

3 years agobless mir-opt tests
lcnr [Sat, 13 Mar 2021 16:52:50 +0000 (17:52 +0100)]
bless mir-opt tests

3 years agoupdate `const_eval_resolve`
lcnr [Sat, 13 Mar 2021 15:31:38 +0000 (16:31 +0100)]
update `const_eval_resolve`

3 years agoextract `ConstKind::Unevaluated` into a struct
lcnr [Thu, 11 Mar 2021 23:01:34 +0000 (00:01 +0100)]
extract `ConstKind::Unevaluated` into a struct

3 years agoAuto merge of #83314 - Aaron1011:print-unstable-value, r=lcnr
bors [Sat, 20 Mar 2021 16:20:21 +0000 (16:20 +0000)]
Auto merge of #83314 - Aaron1011:print-unstable-value, r=lcnr

Debug-print result when an unstable fingerprint is detected

Helps with issues like #83311

I had previously tried to do this in https://github.com/rust-lang/rust/pull/80692, but it had a significant performance impact (even though the code was never actually run). Hopefully, this will be better now that https://github.com/rust-lang/rust/pull/79100 has been merged.

3 years agoBump to 1.53.0
Mark Rousskov [Sat, 20 Mar 2021 16:19:30 +0000 (12:19 -0400)]
Bump to 1.53.0

3 years agoMove some tests to more reasonable directories - 5
Caio [Sat, 20 Mar 2021 14:41:24 +0000 (11:41 -0300)]
Move some tests to more reasonable directories - 5

3 years agoAuto merge of #83271 - SparrowLii:simd_neg, r=Amanieu
bors [Sat, 20 Mar 2021 09:01:35 +0000 (09:01 +0000)]
Auto merge of #83271 - SparrowLii:simd_neg, r=Amanieu

Add simd_neg platform intrinsic

Stdarch needs to add simd_neg to support the implementation of vneg neon instructions. Look [here](https://github.com/rust-lang/stdarch/pull/1087)

3 years agoAuto merge of #82919 - bstrie:stabchar, r=dtolnay
bors [Sat, 20 Mar 2021 06:36:42 +0000 (06:36 +0000)]
Auto merge of #82919 - bstrie:stabchar, r=dtolnay

Stabilize `assoc_char_funcs` and `assoc_char_consts`

Stabilizes the following associated items on `char`:

* [`char::MAX`](https://doc.rust-lang.org/std/primitive.char.html#associatedconstant.MAX)
* [`char::REPLACEMENT_CHARACTER`](https://doc.rust-lang.org/std/primitive.char.html#associatedconstant.REPLACEMENT_CHARACTER)
* [`char::UNICODE_VERSION`](https://doc.rust-lang.org/std/primitive.char.html#associatedconstant.UNICODE_VERSION)
* [`char::decode_utf16`](https://doc.rust-lang.org/std/primitive.char.html#method.decode_utf16)
* [`char::from_u32`](https://doc.rust-lang.org/std/primitive.char.html#method.from_u32)
* [`char::from_u32_unchecked`](https://doc.rust-lang.org/std/primitive.char.html#method.from_u32_unchecked)
* [`char::from_digit`](https://doc.rust-lang.org/std/primitive.char.html#method.from_digit)

Closes #71763.

3 years agoFix broken doc link reference
Stephen Albert-Moore [Sat, 20 Mar 2021 04:36:41 +0000 (00:36 -0400)]
Fix broken doc link reference

3 years agoAuto merge of #83293 - osa1:82436_perf, r=varkor
bors [Sat, 20 Mar 2021 03:49:10 +0000 (03:49 +0000)]
Auto merge of #83293 - osa1:82436_perf, r=varkor

Revert performance-sensitive change in #82436

This change was done in #82436, as an "optimization". Unfortunately I
missed that this code is not always executed, because of the "continue"
in the conditional above it.

This commit should solve the perf regressions introduced by #82436 as I
think there isn't anything else that could affect runtime performance in
that PR. The `Pick` type grows only one word, which I doubt can cause up
to 8.8% increase in RSS in some of the benchmarks.

---

Could someone with the rights start a perf job please?

3 years agoStabilize `assoc_char_funcs` and `assoc_char_consts`
bstrie [Mon, 8 Mar 2021 23:44:03 +0000 (18:44 -0500)]
Stabilize `assoc_char_funcs` and `assoc_char_consts`

3 years agoDebug-print result when an unstable fingerprint is detected
Aaron Hill [Sat, 20 Mar 2021 01:47:57 +0000 (21:47 -0400)]
Debug-print result when an unstable fingerprint is detected

3 years agoupdate tests
mark [Sat, 21 Nov 2020 22:05:17 +0000 (16:05 -0600)]
update tests

3 years agolibrustdoc: or_patterns are stable
mark [Sun, 22 Nov 2020 20:02:19 +0000 (14:02 -0600)]
librustdoc: or_patterns are stable

3 years agoremove unstable book chapter
mark [Sat, 21 Nov 2020 21:53:33 +0000 (15:53 -0600)]
remove unstable book chapter

3 years agoclippy: stabilize or_patterns lint
mark [Sat, 21 Nov 2020 21:22:32 +0000 (15:22 -0600)]
clippy: stabilize or_patterns lint

3 years agocore/std/alloc: stabilize or_patterns
mark [Sat, 21 Nov 2020 21:18:04 +0000 (15:18 -0600)]
core/std/alloc: stabilize or_patterns

3 years agostabilize or_patterns
mark [Sat, 21 Nov 2020 21:12:05 +0000 (15:12 -0600)]
stabilize or_patterns

3 years agoExtend comment in `UsedLocals::visit_lhs`
Tomasz Miąsko [Sat, 20 Mar 2021 00:00:00 +0000 (00:00 +0000)]
Extend comment in `UsedLocals::visit_lhs`

3 years agoAuto merge of #83308 - Dylan-DPC:rollup-p2j6sy8, r=Dylan-DPC
bors [Fri, 19 Mar 2021 23:53:02 +0000 (23:53 +0000)]
Auto merge of #83308 - Dylan-DPC:rollup-p2j6sy8, r=Dylan-DPC

Rollup of 8 pull requests

Successful merges:

 - #79986 (Only build help popup when it's really needed)
 - #82570 (Add `as_str` method for split whitespace str iterators)
 - #83244 (Fix overflowing length in Vec<ZST> to VecDeque)
 - #83254 (Include output stream in `panic!()` documentation)
 - #83269 (Revert the second deprecation of collections::Bound)
 - #83277 (Mark early otherwise optimization unsound)
 - #83285 (Update LLVM to bring in SIMD updates for WebAssembly)
 - #83297 (Do not ICE on ty::Error as an error must already have been reported)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #83297 - oli-obk:why_bug_today_if_you_can_delay_to_tomorrow, r=petroc...
Dylan DPC [Fri, 19 Mar 2021 22:01:42 +0000 (23:01 +0100)]
Rollup merge of #83297 - oli-obk:why_bug_today_if_you_can_delay_to_tomorrow, r=petrochenkov

Do not ICE on ty::Error as an error must already have been reported

fixes #83253

3 years agoRollup merge of #83285 - alexcrichton:wasm-simd-update, r=cuviper
Dylan DPC [Fri, 19 Mar 2021 22:01:41 +0000 (23:01 +0100)]
Rollup merge of #83285 - alexcrichton:wasm-simd-update, r=cuviper

Update LLVM to bring in SIMD updates for WebAssembly

This is a continuation of https://github.com/rust-lang/llvm-project/pull/96
to continue to make progress on updating Rust's support for SIMD
intrinsics on WebAssembly to the latest version of the specification.

3 years agoRollup merge of #83277 - spastorino:early_otherwise-opt-unsound, r=oli-obk
Dylan DPC [Fri, 19 Mar 2021 22:01:40 +0000 (23:01 +0100)]
Rollup merge of #83277 - spastorino:early_otherwise-opt-unsound, r=oli-obk

Mark early otherwise optimization unsound

r? `@oli-obk`
cc `@tmiasko`

Related to #78496 and #82905

Should I also bump this one to level 3 or 4 or given that is unsound it doesn't matter?.
Probably need to adjust some tests.

3 years agoRollup merge of #83269 - bstrie:revertdep, r=m-ou-se
Dylan DPC [Fri, 19 Mar 2021 22:01:39 +0000 (23:01 +0100)]
Rollup merge of #83269 - bstrie:revertdep, r=m-ou-se

Revert the second deprecation of collections::Bound

Per the review at https://github.com/rust-lang/rust/pull/82122#discussion_r596448078 and the decision at https://rust-lang.zulipchat.com/#narrow/stream/219381-t-libs/topic/unavoidable.20breakage.20when.20deprecating.20an.20enum.3F , revert this small portion of #82122 for the time being. This doesn't affect the other components of that patch, i.e. `intrinsics::drop_in_place` is still deprecated-for-real, and uses of `collections::Bound` remain removed from the repo.

3 years agoRollup merge of #83254 - jfrimmel:panic_output-stream, r=m-ou-se,joshtriplett
Dylan DPC [Fri, 19 Mar 2021 22:01:38 +0000 (23:01 +0100)]
Rollup merge of #83254 - jfrimmel:panic_output-stream, r=m-ou-se,joshtriplett

Include output stream in `panic!()` documentation

Fixes #83252.

3 years agoRollup merge of #83244 - cuviper:vec_deque-zst, r=m-ou-se
Dylan DPC [Fri, 19 Mar 2021 22:01:37 +0000 (23:01 +0100)]
Rollup merge of #83244 - cuviper:vec_deque-zst, r=m-ou-se

Fix overflowing length in Vec<ZST> to VecDeque

`Vec` can hold up to `usize::MAX` ZST items, but `VecDeque` has a lower
limit to keep its raw capacity as a power of two, so we should check
that in `From<Vec<T>> for VecDeque<T>`. We can also simplify the
capacity check for the remaining non-ZST case.

Before this fix, the new test would fail on the length:

```
thread 'collections::vec_deque::tests::test_from_vec_zst_overflow' panicked at 'assertion failed: `(left == right)`
  left: `0`,
 right: `9223372036854775808`', library/alloc/src/collections/vec_deque/tests.rs:474:5
note: panic did not contain expected string
      panic message: `"assertion failed: `(left == right)`\n  left: `0`,\n right: `9223372036854775808`"`,
 expected substring: `"capacity overflow"`
```

That was a result of `len()` using a mask `& (size - 1)` with the
improper length. Now we do get a "capacity overflow" panic as soon as
that `VecDeque::from(vec)` is attempted.

Fixes #80167.

3 years agoRollup merge of #82570 - WaffleLapkin:split_whitespace_as_str, r=m-ou-se
Dylan DPC [Fri, 19 Mar 2021 22:01:35 +0000 (23:01 +0100)]
Rollup merge of #82570 - WaffleLapkin:split_whitespace_as_str, r=m-ou-se

Add `as_str` method for split whitespace str iterators

This PR adds `as_str` methods to `SplitWhitespace` and `SplitAsciiWhitespace`
str iterators. The methods return the remainder, similar to `as_str` methods on
`Chars` and other split iterators. This PR is a continuation of https://github.com/rust-lang/rust/pull/75265, which added `as_str` for all other str split iterators.

The feature gate for new methods is `#![feature(str_split_whitespace_as_str)]`.

`SplitWhitespace` and `SplitAsciiWhitespace` use iterators under the hood, so to implement `as_str` it's required to either
1. Make fields of some iterators `pub(crate)`
2. Add getter methods (like `into_inner`, `inner`, `inner_mut`...) to some (all) iterators
3. Completely rewrite `SplitWhitespace` and `SplitAsciiWhitespace`

This PR uses the 1. approach since it's easier to implement and requires fewer changes (and no changes to the public API). If you think that's not the right way, please, tell me.

r? `@m-ou-se`

3 years agoRollup merge of #79986 - GuillaumeGomez:build-help-when-needed, r=Nemo157
Dylan DPC [Fri, 19 Mar 2021 22:01:29 +0000 (23:01 +0100)]
Rollup merge of #79986 - GuillaumeGomez:build-help-when-needed, r=Nemo157

Only build help popup when it's really needed

When working on https://github.com/rust-lang/rust/pull/79985, I realized that the help popup was built even when it wasn't needed. This PR only makes the help popup to be built when required.

r? `@jyn514`

3 years agoAuto merge of #83201 - klensy:checkout-v2, r=pietroalbini
bors [Fri, 19 Mar 2021 21:08:41 +0000 (21:08 +0000)]
Auto merge of #83201 - klensy:checkout-v2, r=pietroalbini

use checkout@v2 in CI for master

Updates CI workflow to use checkout@v2 from v1 (as other parts of CI) for master, plus slightly faster checkout as result
compare v2
https://github.com/rust-lang-ci/rust/commit/2ccf06302c08d7d4911aad40e66a9a3ee731c6f9/checks/2113902859/logs
and v1 logs
https://github.com/rust-lang-ci/rust/commit/2ccf06302c08d7d4911aad40e66a9a3ee731c6f9/checks/2115229351/logs

3 years agoExtend `proc_macro_back_compat` lint to `js-sys`
Aaron Hill [Fri, 19 Mar 2021 15:10:01 +0000 (11:10 -0400)]
Extend `proc_macro_back_compat` lint to `js-sys`

With this PR, we now lint for all cases where we perform some kind of
proc-macro back-compat hack.

The `js-sys` had an internal fix made to properly handle
`None`-delimited groups, so we need to manually check the version in the
filename. As a result, we no longer apply the back-compat hack to cases
where the version number is missing file the file path. This should not
affect any users of the `crates.io` crate.

3 years agoRemove FingerprintEncoder/Decoder.
Camille GILLOT [Thu, 11 Mar 2021 21:16:15 +0000 (22:16 +0100)]
Remove FingerprintEncoder/Decoder.

3 years agoMove raw bytes handling to Encoder/Decoder.
Camille GILLOT [Thu, 11 Mar 2021 21:06:45 +0000 (22:06 +0100)]
Move raw bytes handling to Encoder/Decoder.

3 years agoAuto merge of #82951 - sexxi-goose:wr-mir-replace-methods2, r=nikomatsakis
bors [Fri, 19 Mar 2021 18:23:44 +0000 (18:23 +0000)]
Auto merge of #82951 - sexxi-goose:wr-mir-replace-methods2, r=nikomatsakis

Replace closures_captures and upvar_capture with closure_min_captures

Removed all uses of closures_captures and upvar_capture and refactored code to work with closure_min_captures. This also involved removing functions that were no longer needed like the bridge.

Closes https://github.com/rust-lang/project-rfc-2229/issues/18
r? `@nikomatsakis`

3 years agoIgnore main.js file length
Guillaume Gomez [Fri, 19 Mar 2021 16:33:27 +0000 (17:33 +0100)]
Ignore main.js file length

3 years agoOnly build help popup when it's really needed
Guillaume Gomez [Sat, 12 Dec 2020 22:32:44 +0000 (23:32 +0100)]
Only build help popup when it's really needed

3 years agoAuto merge of #83301 - Dylan-DPC:rollup-x1yzvhm, r=Dylan-DPC
bors [Fri, 19 Mar 2021 15:38:57 +0000 (15:38 +0000)]
Auto merge of #83301 - Dylan-DPC:rollup-x1yzvhm, r=Dylan-DPC

Rollup of 11 pull requests

Successful merges:

 - #82500 (Reuse `std::sys::unsupported::pipe` on `hermit`)
 - #82759 (Remove unwrap_none/expect_none from compiler/.)
 - #82846 (rustdoc: allow list syntax for #[doc(alias)] attributes)
 - #82892 (Clarify docs for Read::read's return value)
 - #83179 (Extend `proc_macro_back_compat` lint to `actix-web`)
 - #83197 (Move some test-only code to test files)
 - #83208 (Fix gitattibutes for old git versions)
 - #83215 (Deprecate std::os::haiku::raw, which accidentally wasn't deprecated)
 - #83230 (Remove unnecessary `forward_inner_docs` hack)
 - #83236 (Upgrade memmap to memmap2)
 - #83270 (Fix typo/inaccuracy in the documentation of Iterator::skip_while)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup

3 years agoRollup merge of #83270 - steffahn:missing_word_in_skip_while_doc, r=joshtriplett
Dylan DPC [Fri, 19 Mar 2021 14:03:29 +0000 (15:03 +0100)]
Rollup merge of #83270 - steffahn:missing_word_in_skip_while_doc, r=joshtriplett

Fix typo/inaccuracy in the documentation of Iterator::skip_while

One of the examples used to say “this leads to a possibly confusing situation, where the type of the closure is a double reference” while _actually_ referring to the type of the closure _argument_.

This PR just changes a single word in documentation.

`````@rustbot````` modify labels: A-iterators, T-doc, T-lang

3 years agoRollup merge of #83236 - cjgillot:memmap, r=joshtriplett
Dylan DPC [Fri, 19 Mar 2021 14:03:28 +0000 (15:03 +0100)]
Rollup merge of #83236 - cjgillot:memmap, r=joshtriplett

Upgrade memmap to memmap2

memmap is no longer maintained. memmap2 is a fork that is still maintained. https://rustsec.org/advisories/RUSTSEC-2020-0077.html

The remaining use of memmap is through measureme.

3 years agoRollup merge of #83230 - jyn514:remove-macros, r=joshtriplett
Dylan DPC [Fri, 19 Mar 2021 14:03:27 +0000 (15:03 +0100)]
Rollup merge of #83230 - jyn514:remove-macros, r=joshtriplett

Remove unnecessary `forward_inner_docs` hack

and replace it with `extended_key_value_attributes` feature.

This is https://github.com/rust-lang/rust/pull/79150, but for compiler/.