]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoAuto merge of #85758 - petertodd:2021-revert-manuallydrop-clone-from, r=m-ou-se
bors [Mon, 14 Jun 2021 10:24:48 +0000 (10:24 +0000)]
Auto merge of #85758 - petertodd:2021-revert-manuallydrop-clone-from, r=m-ou-se

Revert #85176 addition of `clone_from` for `ManuallyDrop`

Forwarding `clone_from` to the inner value changes the observable behavior, as previously the inner value would *not* be dropped by the default implementation.

Frankly, this is a super-niche case, so #85176 is welcome to argue the behavior should be otherwise! But if we overrride it, IMO documenting the behavior would be good.

Example: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=c5d0856686fa850c1d7ee16891014efb

3 years agoAuto merge of #86270 - Shadlock0133:patch-1, r=jackh726
bors [Sun, 13 Jun 2021 22:42:02 +0000 (22:42 +0000)]
Auto merge of #86270 - Shadlock0133:patch-1, r=jackh726

Fix typo `with custom a custom` -> `with a custom`

3 years agoAuto merge of #86271 - GuillaumeGomez:fix-font-weight, r=jsha
bors [Sun, 13 Jun 2021 20:13:32 +0000 (20:13 +0000)]
Auto merge of #86271 - GuillaumeGomez:fix-font-weight, r=jsha

Fix font weight

Fixes #86256.

I realized that the only cases where we actually needed to have bold text was inside `impl-items`.

cc `@camelid`
r? `@jsha`

3 years agoAdd test to ensure font-weight is applied correctly
Guillaume Gomez [Sun, 13 Jun 2021 19:50:11 +0000 (21:50 +0200)]
Add test to ensure font-weight is applied correctly

3 years agoUpdate browser-ui-test version
Guillaume Gomez [Sun, 13 Jun 2021 19:49:30 +0000 (21:49 +0200)]
Update browser-ui-test version

3 years agoFix font-weight
Guillaume Gomez [Sun, 13 Jun 2021 19:49:10 +0000 (21:49 +0200)]
Fix font-weight

3 years agoFix typo `with custom a custom` -> `with a custom`
Shadlock0133 [Sun, 13 Jun 2021 19:21:45 +0000 (21:21 +0200)]
Fix typo `with custom a custom` -> `with a custom`

3 years agoAuto merge of #86245 - lqd:const-ub-align, r=RalfJung
bors [Sun, 13 Jun 2021 12:08:59 +0000 (12:08 +0000)]
Auto merge of #86245 - lqd:const-ub-align, r=RalfJung

Fix ICEs on invalid vtable size/alignment const UB errors

The invalid vtable size/alignment errors from `InterpCx::read_size_and_align_from_vtable` were "freeform const UB errors", causing ICEs when reaching validation. This PR turns them into const UB hard errors to catch them during validation and avoid that.

Fixes #86193

r? `@RalfJung`

(It seemed cleaner to have 2 variants but they can be merged into one variant with a message payload if you prefer that ?)

3 years agoTest invalid vtable size/alignment const UB errors
Rémy Rakic [Sat, 12 Jun 2021 11:15:23 +0000 (13:15 +0200)]
Test invalid vtable size/alignment const UB errors

3 years agoTurn incorrect vtable size/alignment errors into hard const-UB errors
Rémy Rakic [Sat, 12 Jun 2021 11:13:38 +0000 (13:13 +0200)]
Turn incorrect vtable size/alignment errors into hard const-UB errors

They were "freeform const UB" error message, but could reach validation
and trigger ICEs there. We now catch them during validation to avoid
that.

3 years agoAuto merge of #86185 - klensy:ast-val, r=petrochenkov
bors [Sun, 13 Jun 2021 09:36:12 +0000 (09:36 +0000)]
Auto merge of #86185 - klensy:ast-val, r=petrochenkov

simplify validate_generic_param_order

3 years agoAuto merge of #86233 - JohnTitor:stabilize-simd-x86-bittest, r=Amanieu
bors [Sun, 13 Jun 2021 01:27:37 +0000 (01:27 +0000)]
Auto merge of #86233 - JohnTitor:stabilize-simd-x86-bittest, r=Amanieu

Stabilize `simd_x86_bittest` feature

This pulls https://github.com/rust-lang/stdarch/pull/1180, FCP is complete: https://github.com/rust-lang/rust/issues/59414#issuecomment-826072554
Closes #59414

3 years agoAuto merge of #86207 - ehuss:update-cargo, r=ehuss
bors [Sat, 12 Jun 2021 23:08:16 +0000 (23:08 +0000)]
Auto merge of #86207 - ehuss:update-cargo, r=ehuss

Update cargo

11 commits in aa8b09297bb3156b849e73db48af4cd050492fe6..44456677b5d1d82fe981c955dc5c67734b31f340
2021-06-09 00:28:53 +0000 to 2021-06-12 18:00:01 +0000
- Fix package_default_run test. (rust-lang/cargo#9577)
- Change how the fix_deny_warnings_but_not_others test works (rust-lang/cargo#9571)
- Add mising documentation regarding `cargo doc` (rust-lang/cargo#9565)
- Implement warning for ignored trailing arguments (rust-lang/cargo#9561)
- Make clippy happy (rust-lang/cargo#9569)
- Fix rustc/rustdoc config values to be config-relative. (rust-lang/cargo#9566)
- Update rustfix. (rust-lang/cargo#9567)
- Warn if an "all" target is specified, but we don't match anything (rust-lang/cargo#9549)
- add default_run to SerializedPackage (rust-lang/cargo#9550)
- respect user choice of lib/bin over heuristics (rust-lang/cargo#9522)
- Add a mean to mutably access the members of a workspace (rust-lang/cargo#9547)

3 years agosimplify validate_generic_param_order
klensy [Wed, 9 Jun 2021 21:09:12 +0000 (00:09 +0300)]
simplify validate_generic_param_order

3 years agoAuto merge of #86240 - tmiasko:verbose-generator-witness, r=jackh726
bors [Sat, 12 Jun 2021 20:38:17 +0000 (20:38 +0000)]
Auto merge of #86240 - tmiasko:verbose-generator-witness, r=jackh726

Pretty print generator witness only in `-Zverbose` mode

In release build of deeply-nested-async benchmark the size of
`no-opt.bc` file is reduced from 46MB to 62kB.

Helps with #84873, where in one of reported test cases the size of `no-opt.bc`
file is reduced from 2.3GB to 799kB.

3 years agoUpdate cargo
Eric Huss [Sat, 12 Jun 2021 19:11:50 +0000 (12:11 -0700)]
Update cargo

3 years agoUpdate `stdarch` submodule to stabilize `simd_x86_bittest` feature
Yuki Okushi [Fri, 11 Jun 2021 20:46:23 +0000 (05:46 +0900)]
Update `stdarch` submodule to stabilize `simd_x86_bittest` feature

3 years agoPretty print generator witness only in `-Zverbose` mode
Tomasz Miąsko [Sat, 12 Jun 2021 00:00:00 +0000 (00:00 +0000)]
Pretty print generator witness only in `-Zverbose` mode

In release build of deeply-nested-async benchmark the size of
`no-opt.bc` file is reduced from 46MB to 62kB.

3 years agoAuto merge of #82703 - iago-lito:nonzero_add_mul_pow, r=m-ou-se
bors [Sat, 12 Jun 2021 15:29:51 +0000 (15:29 +0000)]
Auto merge of #82703 - iago-lito:nonzero_add_mul_pow, r=m-ou-se

Implement nonzero arithmetics for NonZero types.

Hello'all, this is my first PR to this repo.

Non-zero natural numbers are stable by addition/multiplication/exponentiation, so it makes sense to make this arithmetic possible with `NonZeroU*`.

The major pitfall is that overflowing underlying `u*` types possibly lead to underlying `0` values, which break the major invariant of `NonZeroU*`. To accommodate it, only `checked_` and `saturating_` operations are implemented.

Other variants allowing wrapped results like `wrapping_` or `overflowing_` are ruled out *de facto*.

`impl Add<u*> for NonZeroU* { .. }` was considered, as it panics on overflow which enforces the invariant, but it does not so in release mode. I considered forcing `NonZeroU*::add` to panic in release mode by deferring the check to `u*::checked_add`, but this is less explicit for the user than directly using `NonZeroU*::checked_add`.
Following `@Lokathor's` advice on zulip, I have dropped the idea.

`@poliorcetics` on Discord also suggested implementing `_sub` operations, but I'd postpone this to another PR if there is a need for it. My opinion is that it could be useful in some cases, but that it makes less sense because non-null natural numbers are not stable by subtraction even in theory, while the overflowing problem is just about technical implementation.

One thing I don't like is that the type of the `other` arg differs in every implementation: `_add` methods accept any raw positive integer, `_mul` methods only accept non-zero values otherwise the invariant is also broken, and `_pow` only seems to accept `u32` for a reason I ignore but that seems consistent throughout `std`. Maybe there is a better way to harmonize this?

This is it, Iope I haven't forgotten anything and I'll be happy to read your feedback.

3 years agoAuto merge of #86215 - FabianWolff:unnameable-types, r=jackh726
bors [Sat, 12 Jun 2021 11:12:16 +0000 (11:12 +0000)]
Auto merge of #86215 - FabianWolff:unnameable-types, r=jackh726

Do not suggest to add type annotations for unnameable types

Consider this example:
```rust
const A = || 42;

struct S<T> { t: T }
const B: _ = S { t: || 42 };
```
This currently produces the following output:
```
error: missing type for `const` item
 --> src/lib.rs:1:7
  |
1 | const A = || 42;
  |       ^ help: provide a type for the item: `A: [closure@src/lib.rs:1:11: 1:16]`

error[E0121]: the type placeholder `_` is not allowed within types on item signatures
 --> src/lib.rs:4:10
  |
4 | const B: _ = S { t: || 42 };
  |          ^
  |          |
  |          not allowed in type signatures
  |          help: replace `_` with the correct type: `S<[closure@src/lib.rs:4:21: 4:26]>`

error: aborting due to 2 previous errors
```
However, these suggestions are obviously useless, because the suggested types cannot be written down. With my changes, the suggestion is replaced with a note, because there is no simple fix:
```
error: missing type for `const` item
 --> test.rs:1:7
  |
1 | const A = || 42;
  |       ^
  |
note: however, the inferred type `[closure@test.rs:1:11: 1:16]` cannot be named
 --> test.rs:1:11
  |
1 | const A = || 42;
  |           ^^^^^

error[E0121]: the type placeholder `_` is not allowed within types on item signatures
 --> test.rs:4:10
  |
4 | const B: _ = S { t: || 42 };
  |          ^ not allowed in type signatures
  |
note: however, the inferred type `S<[closure@test.rs:4:21: 4:26]>` cannot be named
 --> test.rs:4:14
  |
4 | const B: _ = S { t: || 42 };
  |              ^^^^^^^^^^^^^^

error: aborting due to 2 previous errors
```

3 years agoStop relying on #[feature(try_trait)] in doctests.
Iago-lito [Sat, 12 Jun 2021 08:58:37 +0000 (10:58 +0200)]
Stop relying on #[feature(try_trait)] in doctests.

3 years agoAuto merge of #86130 - BoxyUwU:abstract_const_as_cast, r=oli-obk
bors [Sat, 12 Jun 2021 08:50:22 +0000 (08:50 +0000)]
Auto merge of #86130 - BoxyUwU:abstract_const_as_cast, r=oli-obk

const_eval_checked: Support as casts in abstract consts

3 years agoAuto merge of #86180 - cjgillot:defmv, r=petrochenkov
bors [Sat, 12 Jun 2021 06:09:20 +0000 (06:09 +0000)]
Auto merge of #86180 - cjgillot:defmv, r=petrochenkov

Hash DefId in rustc_span.

This is mostly just moving code around. Changes are simplifications of unneeded callbacks from rustc_span to rustc_middle.

r? `@petrochenkov`

3 years agoAuto merge of #86234 - Mark-Simulacrum:new-vers, r=Mark-Simulacrum
bors [Sat, 12 Jun 2021 03:46:33 +0000 (03:46 +0000)]
Auto merge of #86234 - Mark-Simulacrum:new-vers, r=Mark-Simulacrum

Bump to 1.55

r? `@Mark-Simulacrum`

3 years agoAuto merge of #86226 - JohnTitor:rollup-5ubdolf, r=JohnTitor
bors [Sat, 12 Jun 2021 01:21:56 +0000 (01:21 +0000)]
Auto merge of #86226 - JohnTitor:rollup-5ubdolf, r=JohnTitor

Rollup of 7 pull requests

Successful merges:

 - #85800 (Fix some diagnostic issues with const_generics_defaults feature gate)
 - #85823 (Do not suggest ampmut if rhs is already mutable)
 - #86153 (Print dummy spans as `no-location`)
 - #86174 (Detect incorrect vtable alignment during const eval)
 - #86189 (Make `relate_type_and_mut` public)
 - #86205 (Run full const-generics test for issue-72293)
 - #86217 (Remove "generic type" in boxed.rs)

Failed merges:

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

3 years agoBump to 1.54
Mark Rousskov [Fri, 11 Jun 2021 23:19:55 +0000 (19:19 -0400)]
Bump to 1.54

3 years agoSuggest a FnPtr type if a FnDef type is found
Fabian Wolff [Fri, 11 Jun 2021 18:12:40 +0000 (20:12 +0200)]
Suggest a FnPtr type if a FnDef type is found

3 years agoRollup merge of #86217 - fee1-dead:adjust-box-doc, r=m-ou-se
Yuki Okushi [Fri, 11 Jun 2021 16:16:04 +0000 (01:16 +0900)]
Rollup merge of #86217 - fee1-dead:adjust-box-doc, r=m-ou-se

Remove "generic type" in boxed.rs

r? ``@m-ou-se``

3 years agoRemove "generic type" in boxed.rs
Deadbeef [Fri, 11 Jun 2021 20:11:48 +0000 (04:11 +0800)]
Remove "generic type" in boxed.rs

3 years agoRollup merge of #86205 - JohnTitor:full-test-for-72293, r=oli-obk
Yuki Okushi [Fri, 11 Jun 2021 16:16:02 +0000 (01:16 +0900)]
Rollup merge of #86205 - JohnTitor:full-test-for-72293, r=oli-obk

Run full const-generics test for issue-72293

Closes #72293
r? ```@oli-obk```

3 years agoRollup merge of #86189 - JohnTitor:relate-fn-pub, r=Aaron1011
Yuki Okushi [Fri, 11 Jun 2021 16:16:01 +0000 (01:16 +0900)]
Rollup merge of #86189 - JohnTitor:relate-fn-pub, r=Aaron1011

Make `relate_type_and_mut` public

#85343 improved diagnostics around `Relate` impls but made `relate_type_and_mut` private, which was accessible as `relate` previously. This makes it public so that we can use it on rust-semverver.

r? ```@Aaron1011```

3 years agoRollup merge of #86174 - lqd:const-ub-align, r=RalfJung
Yuki Okushi [Fri, 11 Jun 2021 16:16:00 +0000 (01:16 +0900)]
Rollup merge of #86174 - lqd:const-ub-align, r=RalfJung

Detect incorrect vtable alignment during const eval

This PR fixes #86132 by detecting invalid alignment values for trait objects in the interpreter, and emitting an error about this conversion failure, to avoid the ICE.

I've noticed that the error emitted at https://github.com/rust-lang/rust/blob/a50d72158e08e02cfc051b863017bdbd2c45b637/compiler/rustc_mir/src/interpret/traits.rs#L163-L166 doesn't seem to be present in the const-ub tests, so I've tried adding a test that triggers both of these cases: one for the invalid size, and another for the invalid alignment that #86132 tracks (I have found different magic values triggering different `Align::from_bytes` errors than the "power of 2" one, if need be).

However, when doing that, I *cannot* for the life of me figure out the correct incantation to make these 2 errors trigger with the "it is undefined behavior to use this value" message rather than the "any use of this value will cause an error" lint.

I've tried Oli's suggestions of different values, tuples and arrays, using the transparent wrapper trick from the other tests and I was only able to trigger the regular const-ub errors about the size of the vtable, or that the drop pointer was invalid. Maybe these "type validation failed" errors happen before this part of the interpreter is reached and there just needs some magic incorrect values to bypass them, I don't know.

Since this fixes an ICE, and if the constants are indeed used, these 2 tests will turn into a hard error, I thought I'd open the PR anyways. And if ```@RalfJung``` you know of a way I could manage that (if you think that these tests are worth checking that the `throw_ub_format!` does indeed create const-ub errors as we expect) I'd be grateful.

For that reason, r? ```@RalfJung``` and cc ```@oli-obk.```

3 years agoRollup merge of #86153 - tmiasko:dummy-span, r=estebank
Yuki Okushi [Fri, 11 Jun 2021 16:15:59 +0000 (01:15 +0900)]
Rollup merge of #86153 - tmiasko:dummy-span, r=estebank

Print dummy spans as `no-location`

Fixes #58808.

3 years agoRollup merge of #85823 - fee1-dead:borrowck-0, r=jackh726
Yuki Okushi [Fri, 11 Jun 2021 16:15:57 +0000 (01:15 +0900)]
Rollup merge of #85823 - fee1-dead:borrowck-0, r=jackh726

Do not suggest ampmut if rhs is already mutable

Removes invalid suggestion in #85765, although it should highlight the user type instead of the local variable.

Looking at the comments of this line:
https://github.com/rust-lang/rust/blob/84b1005bfd22e2cb2a4c13b0b81958fe72628354/compiler/rustc_mir_build/src/build/matches/mod.rs#L2107

It was intentionally set to `None`, causing it to highlight the local variable instead. I am not sure if I will be able to fix it.

Fixes #85765

3 years agoRollup merge of #85800 - BoxyUwU:const-param-default-diagnostics, r=oli-obk
Yuki Okushi [Fri, 11 Jun 2021 16:15:56 +0000 (01:15 +0900)]
Rollup merge of #85800 - BoxyUwU:const-param-default-diagnostics, r=oli-obk

Fix some diagnostic issues with const_generics_defaults feature gate

This PR makes a few changes:
- print out const param defaults in "lifetime ordering" errors rather than discarding them
- update `is_simple_text` to account for const params when checking if a type has no generics, this was causing a note to be failed to add to an error message
- fixes some diagnostic wording that incorrectly said there was ordering restrictions between type/const params despite the `const_generics_defaults` feature gate is active

3 years agoAuto merge of #85885 - bjorn3:remove_box_region, r=cjgillot
bors [Fri, 11 Jun 2021 16:11:20 +0000 (16:11 +0000)]
Auto merge of #85885 - bjorn3:remove_box_region, r=cjgillot

Don't use a generator for BoxedResolver

The generator is non-trivial and requires unsafe code anyway. Using regular unsafe code without a generator is much easier to follow.

Based on #85810 as it touches rustc_interface too.

3 years agoMake DummyHashStableContext dummier.
Camille GILLOT [Fri, 11 Jun 2021 14:53:27 +0000 (16:53 +0200)]
Make DummyHashStableContext dummier.

3 years agoSprinkle inline.
Camille GILLOT [Fri, 11 Jun 2021 14:48:24 +0000 (16:48 +0200)]
Sprinkle inline.

3 years agoDo not suggest to add type annotations for unnameable types
Fabian Wolff [Fri, 11 Jun 2021 11:30:12 +0000 (13:30 +0200)]
Do not suggest to add type annotations for unnameable types

3 years agoAuto merge of #86116 - FabianWolff:issue-86100, r=varkor
bors [Fri, 11 Jun 2021 10:25:53 +0000 (10:25 +0000)]
Auto merge of #86116 - FabianWolff:issue-86100, r=varkor

Suggest a trailing comma if a 1-tuple is expected and a parenthesized expression is found

This pull request fixes #86100. The following code:
```rust
fn main() {
    let t: (i32,) = (1);
}
```
currently produces:
```
warning: unnecessary parentheses around assigned value
 --> test.rs:2:21
  |
2 |     let t: (i32,) = (1);
  |                     ^^^ help: remove these parentheses
  |
  = note: `#[warn(unused_parens)]` on by default

error[E0308]: mismatched types
 --> test.rs:2:21
  |
2 |     let t: (i32,) = (1);
  |            ------   ^^^ expected tuple, found integer
  |            |
  |            expected due to this
  |
  = note: expected tuple `(i32,)`
              found type `{integer}`

error: aborting due to previous error; 1 warning emitted
```
With my changes, I get the same warning and the following error:
```
error[E0308]: mismatched types
 --> test.rs:2:21
  |
2 |     let t: (i32,) = (1);
  |            ------   ^^^ expected tuple, found integer
  |            |
  |            expected due to this
  |
  = note: expected tuple `(i32,)`
              found type `{integer}`
help: use a trailing comma to create a tuple with one element
  |
2 |     let t: (i32,) = (1,);
  |                     ^^^^
```
i.e. I have added a suggestion to add a trailing comma to create a 1-tuple. This suggestion is only issued if a 1-tuple is expected and the expression (`(1)` in the example above) is surrounded by parentheses and does not already have a tuple type. In this situation, I'd say that it is pretty likely that the user meant to create a tuple.

3 years agoHash DefId in rustc_span.
Camille GILLOT [Mon, 19 Apr 2021 20:27:49 +0000 (22:27 +0200)]
Hash DefId in rustc_span.

3 years agoAuto merge of #85994 - tmiasko:monomorphic-needs-drop, r=RalfJung
bors [Fri, 11 Jun 2021 07:44:58 +0000 (07:44 +0000)]
Auto merge of #85994 - tmiasko:monomorphic-needs-drop, r=RalfJung

Disallow non-monomorphic calls to `needs_drop` in interpreter

otherwise evaluation could change after further substitutions.

3 years agoAuto merge of #86204 - alexcrichton:wasm-simd-stable, r=Amanieu
bors [Fri, 11 Jun 2021 05:02:41 +0000 (05:02 +0000)]
Auto merge of #86204 - alexcrichton:wasm-simd-stable, r=Amanieu

std: Stabilize wasm simd intrinsics

This commit performs two changes to stabilize Rust support for
WebAssembly simd intrinsics:

* The stdarch submodule is updated to pull in rust-lang/stdarch#1179.
* The `wasm_target_feature` feature gate requirement for the `simd128`
  feature has been removed, stabilizing the name `simd128`.

This should conclude the FCP started on #74372 and...

Closes #74372

3 years agostd: Stabilize wasm simd intrinsics
Alex Crichton [Thu, 10 Jun 2021 14:11:23 +0000 (07:11 -0700)]
std: Stabilize wasm simd intrinsics

This commit performs two changes to stabilize Rust support for
WebAssembly simd intrinsics:

* The stdarch submodule is updated to pull in rust-lang/stdarch#1179.
* The `wasm_target_feature` feature gate requirement for the `simd128`
  feature has been removed, stabilizing the name `simd128`.

This should conclude the FCP started on #74372 and...

Closes #74372

3 years agoAuto merge of #85961 - 1000teslas:issue-71519-fix, r=petrochenkov
bors [Fri, 11 Jun 2021 02:21:52 +0000 (02:21 +0000)]
Auto merge of #85961 - 1000teslas:issue-71519-fix, r=petrochenkov

MVP for using rust-lld as part of cc

Will fix #71519. I need to figure out how to write a test showing that lld is used instead of whatever linker cc normally uses. When I manually run rustc using `echo 'fn main() {}' | RUSTC_LOG=rustc_codegen_ssa::back::link=debug ./rustc -Clinker-flavor=gcc-lld --crate-type bin -Clink-arg=-Wl,-v` (thanks to bjorn3 on Zulip), I can see that lld is used, but I'm not sure how to inspect that output in a test.

3 years agoAuto merge of #85630 - gilescope:to_digit_speedup3, r=nagisa
bors [Thu, 10 Jun 2021 23:14:11 +0000 (23:14 +0000)]
Auto merge of #85630 - gilescope:to_digit_speedup3, r=nagisa

to_digit simplification (less jumps)

I just realised we might be able to make use of the fact that changing case in ascii is easy to help simplify to_digit some more.

It looks a bit cleaner and it looks like it's less jumps and there's less instructions in the generated assembly:

https://godbolt.org/z/84Erh5dhz

The benchmarks don't really tell me much. Maybe a slight improvement on the var radix.

Before:
```
test char::methods::bench_to_digit_radix_10                     ... bench:      53,819 ns/iter (+/- 8,314)
test char::methods::bench_to_digit_radix_16                     ... bench:      57,265 ns/iter (+/- 10,730)
test char::methods::bench_to_digit_radix_2                      ... bench:      55,077 ns/iter (+/- 5,431)
test char::methods::bench_to_digit_radix_36                     ... bench:      56,549 ns/iter (+/- 3,248)
test char::methods::bench_to_digit_radix_var                    ... bench:      43,848 ns/iter (+/- 3,189)

test char::methods::bench_to_digit_radix_10                     ... bench:      51,707 ns/iter (+/- 10,946)
test char::methods::bench_to_digit_radix_16                     ... bench:      52,835 ns/iter (+/- 2,689)
test char::methods::bench_to_digit_radix_2                      ... bench:      51,012 ns/iter (+/- 2,746)
test char::methods::bench_to_digit_radix_36                     ... bench:      53,210 ns/iter (+/- 8,645)
test char::methods::bench_to_digit_radix_var                    ... bench:      40,386 ns/iter (+/- 4,711)

test char::methods::bench_to_digit_radix_10                     ... bench:      54,088 ns/iter (+/- 5,677)
test char::methods::bench_to_digit_radix_16                     ... bench:      55,972 ns/iter (+/- 17,229)
test char::methods::bench_to_digit_radix_2                      ... bench:      52,083 ns/iter (+/- 2,425)
test char::methods::bench_to_digit_radix_36                     ... bench:      54,132 ns/iter (+/- 1,548)
test char::methods::bench_to_digit_radix_var                    ... bench:      41,250 ns/iter (+/- 5,299)
```
After:
```
test char::methods::bench_to_digit_radix_10                     ... bench:      48,907 ns/iter (+/- 19,449)
test char::methods::bench_to_digit_radix_16                     ... bench:      52,673 ns/iter (+/- 8,122)
test char::methods::bench_to_digit_radix_2                      ... bench:      48,509 ns/iter (+/- 2,885)
test char::methods::bench_to_digit_radix_36                     ... bench:      50,526 ns/iter (+/- 4,610)
test char::methods::bench_to_digit_radix_var                    ... bench:      38,618 ns/iter (+/- 3,180)

test char::methods::bench_to_digit_radix_10                     ... bench:      54,202 ns/iter (+/- 6,994)
test char::methods::bench_to_digit_radix_16                     ... bench:      56,585 ns/iter (+/- 8,448)
test char::methods::bench_to_digit_radix_2                      ... bench:      50,548 ns/iter (+/- 1,674)
test char::methods::bench_to_digit_radix_36                     ... bench:      52,749 ns/iter (+/- 2,576)
test char::methods::bench_to_digit_radix_var                    ... bench:      40,215 ns/iter (+/- 3,327)

test char::methods::bench_to_digit_radix_10                     ... bench:      50,233 ns/iter (+/- 22,272)
test char::methods::bench_to_digit_radix_16                     ... bench:      50,841 ns/iter (+/- 19,981)
test char::methods::bench_to_digit_radix_2                      ... bench:      50,386 ns/iter (+/- 4,555)
test char::methods::bench_to_digit_radix_36                     ... bench:      52,369 ns/iter (+/- 2,737)
test char::methods::bench_to_digit_radix_var                    ... bench:      40,417 ns/iter (+/- 2,766)
```

I removed the likely as it resulted in a few less instructions. (It's not been in there long - I added it in the last to_digit iteration).

3 years agoRun full const-generics test for issue-72293
Yuki Okushi [Thu, 10 Jun 2021 21:20:54 +0000 (06:20 +0900)]
Run full const-generics test for issue-72293

3 years agoAuto merge of #80080 - rylev:qpath-on-struct, r=petrochenkov
bors [Thu, 10 Jun 2021 20:32:43 +0000 (20:32 +0000)]
Auto merge of #80080 - rylev:qpath-on-struct, r=petrochenkov

Allow qualified paths in struct construction (both expressions and patterns)

Fixes #79658

3 years agoFurther simplification of to_digit
Giles Cope [Thu, 10 Jun 2021 19:16:35 +0000 (20:16 +0100)]
Further simplification of to_digit

3 years agoAuto merge of #86098 - pietroalbini:test-stable, r=Mark-Simulacrum
bors [Thu, 10 Jun 2021 17:51:48 +0000 (17:51 +0000)]
Auto merge of #86098 - pietroalbini:test-stable, r=Mark-Simulacrum

Add the x86_64-gnu-stable builder

During the 1.52 release process we had to deal with some commits that passed the test suite on the nightly branch but failed on the beta or stable branch. In that case it was due to some UI tests including the channel name in the output, but other changes might also be dependent on the channel.

This commit adds a new CI job that runs the Linux x86_64 test suite with the stable branch, ensuring nightly changes also work as stable. To ensure the new job works the following other changes are present:

* The `ui-fulldeps/session-derive-errors.rs` test has been disabled on beta and stable, which required adding support for `// ignore-{channel}` and `// only-{channel}`.
* The `rustdoc/intra-doc/field.rs` has been fixed.

r? `@Mark-Simulacrum`
fixes https://github.com/rust-lang/release-team/issues/11

3 years agoRemove unnecessary transmute
bjorn3 [Thu, 10 Jun 2021 17:36:27 +0000 (19:36 +0200)]
Remove unnecessary transmute

3 years agoAuto merge of #86020 - nagisa:nagisa/outliner, r=pnkfelix
bors [Thu, 10 Jun 2021 15:11:01 +0000 (15:11 +0000)]
Auto merge of #86020 - nagisa:nagisa/outliner, r=pnkfelix

Disable the machine outliner by default

This addresses a codegen-issue that needs to be fixed upstream in LLVM.
While we wait for the fix, we can disable it.

Verified manually that the outliner is no longer run when
`-Copt-level=z` is specified, and also that you can override this with
`-Cllvm-args=-enable-machine-outliner` if you need it anyway.

A regression test is not really feasible in this instance, given that we
do not have any minimal reproducers.

Fixes #85351

cc `@pnkfelix`

3 years agosupport `as _` and add tests
Ellen [Thu, 10 Jun 2021 13:53:38 +0000 (14:53 +0100)]
support `as _` and add tests

3 years agoAuto merge of #82639 - jyn514:stable-options, r=Mark-Simulacrum
bors [Thu, 10 Jun 2021 12:47:54 +0000 (12:47 +0000)]
Auto merge of #82639 - jyn514:stable-options, r=Mark-Simulacrum

Don't pass -Z unstable-options by default for UI tests

Unconditionally passing -Z unstable-options makes it impossible to test whether an option requires unstable-options or not.

This uncovered quite a lot of bugs, I'll open issues for each. These don't strictly need to be fixed before this is merged, it just makes the diff much larger because of the changes to diagnostics.

- https://github.com/rust-lang/rust/issues/82636
- https://github.com/rust-lang/rust/issues/82637
- https://github.com/rust-lang/rust/issues/82638

3 years agoAdd support for using qualified paths with structs in expression and pattern
Ryan Levick [Thu, 10 Dec 2020 12:20:07 +0000 (13:20 +0100)]
Add support for using qualified paths with structs in expression and pattern
position.

3 years agoAuto merge of #85741 - tmiasko:ssa, r=nagisa
bors [Thu, 10 Jun 2021 10:06:58 +0000 (10:06 +0000)]
Auto merge of #85741 - tmiasko:ssa, r=nagisa

Use preorder traversal when checking for SSA locals

Traverse blocks in topological sort of dominance partial order, to ensure that
local analyzer correctly identifies locals that are already in static single
assignment form, while avoiding dependency on implicit numeric order of blocks.

When rebuilding the standard library, this change reduces the number of locals
that require an alloca from 62452 to 62348.

3 years agogcc-lld mvp
1000teslas [Wed, 2 Jun 2021 09:48:33 +0000 (19:48 +1000)]
gcc-lld mvp

ignore test if rust-lld not found

create ld -> rust-lld symlink at build time instead of run time

for testing in ci

copy instead of symlinking

remove linux check

test for linker, suggestions from bjorn3

fix overly restrictive lld matcher

use -Zgcc-ld flag instead of -Clinker-flavor

refactor code adding lld to gcc path

revert ci changes

suggestions from petrochenkov

rename gcc_ld to gcc-ld in dirs

3 years agoAuto merge of #86186 - JohnTitor:rollup-upaw6wx, r=JohnTitor
bors [Thu, 10 Jun 2021 03:11:24 +0000 (03:11 +0000)]
Auto merge of #86186 - JohnTitor:rollup-upaw6wx, r=JohnTitor

Rollup of 7 pull requests

Successful merges:

 - #82037 (Make symbols stripping work on MacOS X)
 - #84687 (Multiple improvements to RwLocks)
 - #85997 (rustdoc: Print a warning if the diff when comparing to old nightlies is empty)
 - #86051 (Updated code examples and wording in move keyword documentation )
 - #86111 (fix off by one in `std::iter::Iterator` documentation)
 - #86113 (build doctests with lld if use-lld = true)
 - #86175 (update Miri)

Failed merges:

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

3 years agoMake `relate_type_and_mut` public
Yuki Okushi [Thu, 10 Jun 2021 02:48:51 +0000 (11:48 +0900)]
Make `relate_type_and_mut` public

3 years agoRollup merge of #86175 - RalfJung:miri, r=RalfJung
Yuki Okushi [Thu, 10 Jun 2021 02:02:16 +0000 (11:02 +0900)]
Rollup merge of #86175 - RalfJung:miri, r=RalfJung

update Miri

We had some nice PRs land today, let's ship those. :)
Cc `@rust-lang/miri` r? `@ghost`

3 years agoRollup merge of #86113 - the8472:doctest-lld, r=Mark-Simulacrum
Yuki Okushi [Thu, 10 Jun 2021 02:02:15 +0000 (11:02 +0900)]
Rollup merge of #86113 - the8472:doctest-lld, r=Mark-Simulacrum

build doctests with lld if use-lld = true

results when running `./x.py test library/core --doc --stage 0`:

```
# OLD
test result: FAILED. 2844 passed; 6 failed; 28 ignored; 0 measured; 0 filtered out; finished in 21.13s

# NEW
test result: FAILED. 2844 passed; 6 failed; 28 ignored; 0 measured; 0 filtered out; finished in 11.92s
```

3 years agoRollup merge of #86111 - spookyvision:master, r=JohnTitor
Yuki Okushi [Thu, 10 Jun 2021 02:02:14 +0000 (11:02 +0900)]
Rollup merge of #86111 - spookyvision:master, r=JohnTitor

fix off by one in `std::iter::Iterator` documentation

the range `(0..10)` is documented as "The even numbers from zero to ten." - should be ".. to nine".

3 years agoRollup merge of #86051 - erer1243:update_move_keyword_docs, r=Mark-Simulacrum
Yuki Okushi [Thu, 10 Jun 2021 02:02:13 +0000 (11:02 +0900)]
Rollup merge of #86051 - erer1243:update_move_keyword_docs, r=Mark-Simulacrum

Updated code examples and wording in move keyword documentation

Had a conversation with someone on the Rust Discord who was confused by the move keyword documentation. Some of the wording is odd sounding ("owned by value" - what else can something be owned by?). Also, some of the examples used Copy types when demonstrating move, leading to variables still being accessible in the outer scope after the move, contradicting the examples' comments.

I changed the move keyword documentation a bit, removing that odd wording and changing all the examples to use non-Copy types

3 years agoRollup merge of #85997 - jyn514:rustdoc-diff, r=Mark-Simulacrum
Yuki Okushi [Thu, 10 Jun 2021 02:02:12 +0000 (11:02 +0900)]
Rollup merge of #85997 - jyn514:rustdoc-diff, r=Mark-Simulacrum

rustdoc: Print a warning if the diff when comparing to old nightlies is empty

This avoids confusing situations where it's unclear whether there's a
bug in the diff tool or not:

```
26: `@has` check failed
        `XPATH PATTERN` did not match
        // `@has` - '//code/a[`@href="{{channel}}/std/primitive.i32.html"]'` 'i32'

Encountered 6 errors

------------------------------------------

info: generating a diff against nightly rustdoc

failures:
    [rustdoc] rustdoc/primitive-reexport.rs
```

3 years agoRollup merge of #84687 - a1phyr:improve_rwlock, r=m-ou-se
Yuki Okushi [Thu, 10 Jun 2021 02:02:10 +0000 (11:02 +0900)]
Rollup merge of #84687 - a1phyr:improve_rwlock, r=m-ou-se

Multiple improvements to RwLocks

This PR replicates #77147, #77380 and #84650 on RWLocks :
- Split `sys_common::RWLock` in `StaticRWLock` and `MovableRWLock`
- Unbox rwlocks on some platforms (Windows, Wasm and unsupported)
- Simplify `RwLock::into_inner`

Notes to reviewers :
- For each target, I copied `MovableMutex` to guess if `MovableRWLock` should be boxed.
- ~A comment says that `StaticMutex` is not re-entrant, I don't understand why and I don't know whether it applies to `StaticRWLock`.~

r? `@m-ou-se`

3 years agoRollup merge of #82037 - calavera:strip_debuginfo_osx, r=petrochenkov
Yuki Okushi [Thu, 10 Jun 2021 02:02:01 +0000 (11:02 +0900)]
Rollup merge of #82037 - calavera:strip_debuginfo_osx, r=petrochenkov

Make symbols stripping work on MacOS X

As reported in the [stabilization issue](https://github.com/rust-lang/rust/issues/72110), MacOS' linker doesn't support the `-s` and `-S` flags to strip symbols anymore. However, the os ships a separated tool to perform these operations.

This change allows the compiler to use that tool after a target has been compiled to strip symbols.

For rationale, see: https://github.com/rust-lang/rust/issues/72110#issuecomment-641169818
For option selection, see: https://www.unix.com/man-page/osx/1/strip/

Signed-off-by: David Calavera <david.calavera@gmail.com>
3 years agoAuto merge of #85910 - cjgillot:no-meta-version, r=Aaron1011
bors [Thu, 10 Jun 2021 00:39:25 +0000 (00:39 +0000)]
Auto merge of #85910 - cjgillot:no-meta-version, r=Aaron1011

Drop metadata_encoding_version.

Part of #85153

r? `@Aaron1011`

3 years agodetect incorrect vtable alignment during const eval instead of ICE-ing
Rémy Rakic [Tue, 8 Jun 2021 21:47:04 +0000 (23:47 +0200)]
detect incorrect vtable alignment during const eval instead of ICE-ing

also add tests for these 2 kinds of errors for size and alignment,
as the existing size check wasn't apparently tested

3 years agoupdate Miri
Ralf Jung [Wed, 9 Jun 2021 19:06:09 +0000 (21:06 +0200)]
update Miri

3 years agoAdd more tests + visit_ty in some places
Ellen [Wed, 9 Jun 2021 18:28:41 +0000 (19:28 +0100)]
Add more tests + visit_ty in some places

3 years agoAuto merge of #86003 - pnkfelix:issue-84297-revert-81238, r=Mark-Simulacrum
bors [Wed, 9 Jun 2021 16:47:05 +0000 (16:47 +0000)]
Auto merge of #86003 - pnkfelix:issue-84297-revert-81238, r=Mark-Simulacrum

Make copy/copy_nonoverlapping fn's again

Make copy/copy_nonoverlapping fn's again, rather than intrinsics.

This a short-term change to address issue #84297.

It effectively reverts PRs #81167 #81238 (and part of #82967), #83091, and parts of #79684.

3 years agoMake symbols stripping work on MacOS X
David Calavera [Fri, 12 Feb 2021 18:24:16 +0000 (10:24 -0800)]
Make symbols stripping work on MacOS X

As reported in the stabilization issue, MacOS' linker doesn't support the `-s` and `-S` flags to strip symbols anymore. However, the os ships a separated tool to perform these operations.

This change allows the compiler to use that tool after a target has been compiled to strip symbols.

For rationale, see: https://github.com/rust-lang/rust/issues/72110#issuecomment-641169818
For option selection, see: https://www.unix.com/man-page/osx/1/strip/

Signed-off-by: David Calavera <david.calavera@gmail.com>
3 years agoFix diverging doc regarding signedness.
Iago-lito [Mon, 7 Jun 2021 14:19:54 +0000 (16:19 +0200)]
Fix diverging doc regarding signedness.

3 years agoExplicit what `check` means on concerned method.
Iago-lito [Wed, 28 Apr 2021 08:55:48 +0000 (10:55 +0200)]
Explicit what `check` means on concerned method.

3 years agoNonZero saturating_pow.
Iago-lito [Thu, 15 Apr 2021 10:34:03 +0000 (12:34 +0200)]
NonZero saturating_pow.

3 years agoNonZero checked_pow.
Iago-lito [Thu, 15 Apr 2021 10:32:48 +0000 (12:32 +0200)]
NonZero checked_pow.

3 years agoNonZero unchecked_mul.
Iago-lito [Thu, 15 Apr 2021 10:31:32 +0000 (12:31 +0200)]
NonZero unchecked_mul.

3 years agoNonZero saturating_mul.
Iago-lito [Thu, 15 Apr 2021 10:30:13 +0000 (12:30 +0200)]
NonZero saturating_mul.

3 years agoNonZero checked_mul.
Iago-lito [Thu, 15 Apr 2021 10:28:45 +0000 (12:28 +0200)]
NonZero checked_mul.

3 years agoNonZero unsigned_abs.
Iago-lito [Thu, 15 Apr 2021 10:26:39 +0000 (12:26 +0200)]
NonZero unsigned_abs.

3 years agoNonZero wrapping_abs.
Iago-lito [Thu, 15 Apr 2021 10:25:13 +0000 (12:25 +0200)]
NonZero wrapping_abs.

3 years agoNonZero saturating_abs.
Iago-lito [Thu, 15 Apr 2021 10:23:02 +0000 (12:23 +0200)]
NonZero saturating_abs.

3 years agoNonZero overflowing_abs.
Iago-lito [Thu, 15 Apr 2021 10:21:25 +0000 (12:21 +0200)]
NonZero overflowing_abs.

3 years agoNonZero checked_abs.
Iago-lito [Thu, 15 Apr 2021 10:19:24 +0000 (12:19 +0200)]
NonZero checked_abs.

3 years agoNonZero abs.
Iago-lito [Thu, 15 Apr 2021 10:18:04 +0000 (12:18 +0200)]
NonZero abs.

3 years agoNonZero checked_next_power_of_two.
Iago-lito [Thu, 15 Apr 2021 10:15:51 +0000 (12:15 +0200)]
NonZero checked_next_power_of_two.

3 years agoNonZero unchecked_add.
Iago-lito [Thu, 15 Apr 2021 10:14:25 +0000 (12:14 +0200)]
NonZero unchecked_add.

3 years agoNonZero saturating_add.
Iago-lito [Thu, 15 Apr 2021 10:12:46 +0000 (12:12 +0200)]
NonZero saturating_add.

3 years agoNonZero checked_add.
Iago-lito [Thu, 15 Apr 2021 10:10:05 +0000 (12:10 +0200)]
NonZero checked_add.

3 years agoAuto merge of #86150 - cjgillot:notable, r=michaelwoerister
bors [Wed, 9 Jun 2021 14:06:10 +0000 (14:06 +0000)]
Auto merge of #86150 - cjgillot:notable, r=michaelwoerister

Do not require the DefPathTable to construct the on-disk cache.

r? `@michaelwoerister`

3 years agoAdd safety comments
bjorn3 [Wed, 9 Jun 2021 12:51:42 +0000 (14:51 +0200)]
Add safety comments

3 years agoUse explicit drop impl
bjorn3 [Wed, 9 Jun 2021 12:47:01 +0000 (14:47 +0200)]
Use explicit drop impl

3 years agoAuto merge of #85975 - the8472:revert-take-tra, r=scottmcm
bors [Wed, 9 Jun 2021 11:24:54 +0000 (11:24 +0000)]
Auto merge of #85975 - the8472:revert-take-tra, r=scottmcm

Revert "implement TrustedRandomAccess for Take iterator adapter"

This reverts commit 37a5b515e9c36ee3f57d9e0d7db7efce2fb02195 (#83990).

The original change unintentionally caused side-effects from certain iterator chains combining `take`, `zip` and `next_back()` to be omitted which is observable by user code and thus likely a breaking change

Technically one could declare it not a breaking change since `Zip`'s API contract is silent about about its backwards iteration behavior but on the other hand there is nothing in the stable Iterator API that could justify the currently observable behavior. And either way, this impact wasn't noticed or discussed in the original PR.

Fixes #85969

3 years agoAuto merge of #86118 - spastorino:tait-soundness-bug, r=nikomatsakis
bors [Wed, 9 Jun 2021 09:00:16 +0000 (09:00 +0000)]
Auto merge of #86118 - spastorino:tait-soundness-bug, r=nikomatsakis

Create different inference variables for different defining uses of TAITs

Fixes #73481

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

3 years agoAuto merge of #86107 - Smittyvb:peephole-optim-eq-bool, r=wesleywiser
bors [Wed, 9 Jun 2021 06:06:06 +0000 (06:06 +0000)]
Auto merge of #86107 - Smittyvb:peephole-optim-eq-bool, r=wesleywiser

Peephole optimize `x == false` and `x != true`

This adds peephole optimizations to make `x == false`, `false == x`, `x != true`, and `true != x` get optimized to `!x` in the `instcombine` MIR pass. That pass currently handles `x == true` -> `x` already.

3 years agoAuto merge of #86160 - JohnTitor:rollup-8ark9x7, r=JohnTitor
bors [Wed, 9 Jun 2021 03:15:34 +0000 (03:15 +0000)]
Auto merge of #86160 - JohnTitor:rollup-8ark9x7, r=JohnTitor

Rollup of 11 pull requests

Successful merges:

 - #85676 (Fix documentation style inconsistencies for IP addresses)
 - #85715 (Document `From` impls in string.rs)
 - #85791 (Add `Ipv6Addr::is_unicast`)
 - #85957 (Display defaults on const params- rustdoc )
 - #85982 (Enable rustdoc to document safe wasm intrinsics)
 - #86121 (Forwarding implementation for Seek trait's stream_position method)
 - #86124 (Include macro name in 'local ambiguity' error)
 - #86128 (Refactor: Extract render_summary from render_impl.)
 - #86142 (Simplify proc_macro code using Bound::cloned().)
 - #86158 (Update books)
 - #86159 (Update cargo)

Failed merges:

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

3 years agoRollup merge of #86159 - ehuss:update-cargo, r=ehuss
Yuki Okushi [Wed, 9 Jun 2021 03:04:10 +0000 (12:04 +0900)]
Rollup merge of #86159 - ehuss:update-cargo, r=ehuss

Update cargo

11 commits in 0cecbd67323ca14a7eb6505900d0d7307b00355b..aa8b09297bb3156b849e73db48af4cd050492fe6
2021-06-01 20:09:13 +0000 to 2021-06-09 00:28:53 +0000
- Add `--prune` option for cargo-tree (rust-lang/cargo#9520)
- Fix typo in gitignore docs. (rust-lang/cargo#9556)
- Fix typos in command_prelude.rs (rust-lang/cargo#9552)
- Make clippy happy (rust-lang/cargo#9551)
- Remove some dead code. (rust-lang/cargo#9546)
- Add additional test for CJK progress width (rust-lang/cargo#9515)
- Pull in semver 1.0.3 'x' fix (rust-lang/cargo#9544)
- Add some tracking issues to unstable docs. (rust-lang/cargo#9540)
- Update documentation for include/exclude. (rust-lang/cargo#9538)
- Bump mdbook version for contrib guide. (rust-lang/cargo#9534)
- Replace deprecated `[replace]` references with `[patch]` (rust-lang/cargo#9533)

3 years agoRollup merge of #86158 - ehuss:update-books, r=ehuss
Yuki Okushi [Wed, 9 Jun 2021 03:04:09 +0000 (12:04 +0900)]
Rollup merge of #86158 - ehuss:update-books, r=ehuss

Update books

## reference

4 commits in 9c68af3ce6ccca2395e1868addef26a0542e9ddd..8f598e2af6c25b4a7ee88ef6a8196d9b8ea50ca8
2021-05-24 09:53:32 -0700 to 2021-06-01 19:00:46 +0100
- Add crate and module to glossary. (rust-lang-nursery/reference#1016)
- Fix type_length_limit example. (rust-lang-nursery/reference#1026)
- Rearrange HRTB grammar. (rust-lang-nursery/reference#1011)
- Revert "Temporarily remove pat_param." (rust-lang-nursery/reference#1010)

## rustc-dev-guide

6 commits in 50de7f0682adc5d95ce858fe6318d19b4b951553..c8da5bfd1c7c71d90ef1646f5e0a9f6609d5c78a
2021-05-20 15:02:20 +0200 to 2021-06-04 09:08:56 +0200
- Fix some links (rust-lang/rustc-dev-guide#1137)
- explain Miri engine vs Miri-the-tool
- Add more information about no_hash query modifier. (rust-lang/rustc-dev-guide#1133)
- improve section introduction
- not all tools require waiting for a nightly release before they can be fixed
- Describe the difference of rustc_lint vs rustc_lint_defs.

3 years agoRollup merge of #86142 - m-ou-se:proc-macro-subspan-bound-cloned-cleanup, r=petrochenkov
Yuki Okushi [Wed, 9 Jun 2021 03:04:08 +0000 (12:04 +0900)]
Rollup merge of #86142 - m-ou-se:proc-macro-subspan-bound-cloned-cleanup, r=petrochenkov

Simplify proc_macro code using Bound::cloned().

3 years agoRollup merge of #86128 - jsha:render-impl-into-mod, r=GuillaumeGomez
Yuki Okushi [Wed, 9 Jun 2021 03:04:07 +0000 (12:04 +0900)]
Rollup merge of #86128 - jsha:render-impl-into-mod, r=GuillaumeGomez

Refactor: Extract render_summary from render_impl.

This allows for a more readable straight-through logic in render_impl without need for a closure.

I think this will make #85970 a bit more of a straightforward change.

This is a pure refactoring. I've verified that the output of `x.py doc library/std` is byte-for-byte identical.

r? `@GuillaumeGomez`