]> git.lizzy.rs Git - rust.git/log
rust.git
21 months agoRollup merge of #102045 - RalfJung:const-prop-regression-fix, r=oli-obk
Dylan DPC [Wed, 21 Sep 2022 13:31:08 +0000 (19:01 +0530)]
Rollup merge of #102045 - RalfJung:const-prop-regression-fix, r=oli-obk

fix ConstProp handling of written_only_inside_own_block_locals

Fixes a regression introduced by https://github.com/rust-lang/rust/pull/100239, which adds an early return and thus skips some code in `visit_terminator` that must be run for soundness.

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

21 months agoRollup merge of #102041 - nnethercote:improve-meta-stats, r=bjorn3
Dylan DPC [Wed, 21 Sep 2022 13:31:08 +0000 (19:01 +0530)]
Rollup merge of #102041 - nnethercote:improve-meta-stats, r=bjorn3

Improve `-Zmeta-stats` some more

A follow-up to #97384.

r? ```@bjorn3```

21 months agoRollup merge of #102031 - andrewpollack:compiler-tests-backtrace, r=tmandry
Dylan DPC [Wed, 21 Sep 2022 13:31:07 +0000 (19:01 +0530)]
Rollup merge of #102031 - andrewpollack:compiler-tests-backtrace, r=tmandry

Adding ignore fuchsia tests for Backtrace, ErrorKind cases

Tests where Backtrace parses are required (invalid since Fuchsia backtraces are not symbolized), and test where ErrorKind is not properly translated from a Fuchsia-style to Unix-style error code

cc. ```@djkoloski```

r? ```@tmandry```

21 months agoRollup merge of #101995 - scottmcm:carrying-mul-example, r=Mark-Simulacrum
Dylan DPC [Wed, 21 Sep 2022 13:31:07 +0000 (19:01 +0530)]
Rollup merge of #101995 - scottmcm:carrying-mul-example, r=Mark-Simulacrum

Add another example for `uN::carrying_mul`

The prose talks about doing this, so might as well add a simple code example of it too.

21 months agoRollup merge of #89891 - ojeda:modular-alloc, r=Mark-Simulacrum
Dylan DPC [Wed, 21 Sep 2022 13:31:06 +0000 (19:01 +0530)]
Rollup merge of #89891 - ojeda:modular-alloc, r=Mark-Simulacrum

`alloc`: add unstable cfg features `no_rc` and `no_sync`

In Rust for Linux we are using these to make `alloc` a bit more modular.

See https://github.com/rust-lang/rust/pull/86048 and https://github.com/rust-lang/rust/pull/84266 for similar requests.

Of course, the particular names are not important.

21 months agoAuto merge of #101329 - QuinnPainter:armv5te-targets, r=nagisa
bors [Wed, 21 Sep 2022 09:36:21 +0000 (09:36 +0000)]
Auto merge of #101329 - QuinnPainter:armv5te-targets, r=nagisa

Add armv5te-none-eabi and thumbv5te-none-eabi targets

Creates two new Tier 3 targets, `armv5te-none-eabi` and `thumbv5te-none-eabi`. They are for the same target architecture (armv5te), but one defaults to the A32 instruction set and the other defaults to T32. Based on the existing `armv4t-none-eabi` and `thumbv4t-none-eabi` targets.

My particular use case for these targets is Nintendo DS homebrew, but they should be usable for any armv5te system.

Going through the Tier 3 target policy:

> A tier 3 target must have a designated developer or developers (the "target maintainers") on record to be CCed when issues arise regarding the target. (The mechanism to track and CC such developers may evolve over time.)

That will be me.

> Targets must use naming consistent with any existing targets.

Naming is consistent with previous targets.

>> Target names should not introduce undue confusion or ambiguity unless absolutely necessary to maintain ecosystem compatibility.

No ambiguity here.

> Tier 3 targets may have unusual requirements to build or use, but must not create legal issues or impose onerous legal terms for the Rust project or for Rust developers or users.

Doesn't create any legal issues.

>> The target must not introduce license incompatibilities.

This doesn't introduce any new licenses.

>> Anything added to the Rust repository must be under the standard Rust license (MIT OR Apache-2.0).

Yep.

>> The target must not cause the Rust tools or libraries built for any other host (even when supporting cross-compilation to the target) to depend on any new dependency less permissive than the Rust licensing policy. This applies whether the dependency is a Rust crate that would require adding new license exceptions (as specified by the tidy tool in the rust-lang/rust repository), or whether the dependency is a native library or binary. In other words, the introduction of the target must not cause a user installing or running a version of Rust or the Rust tools to be subject to any new license requirements.

No new license requirements.

>> Compiling, linking, and emitting functional binaries, libraries, or other code for the target (whether hosted on the target itself or cross-compiling from another target) must not depend on proprietary (non-FOSS) libraries.

Everything this uses is FOSS, no proprietary required.

> Neither this policy nor any decisions made regarding targets shall create any binding agreement or estoppel by any party. If any member of an approving Rust team serves as one of the maintainers of a target, or has any legal or employment requirement (explicit or implicit) that might affect their decisions regarding a target, they must recuse themselves from any approval decisions regarding the target's tier status, though they may otherwise participate in discussions.

OK.

>> This requirement does not prevent part or all of this policy from being cited in an explicit contract or work agreement (e.g. to implement or maintain support for a target). This requirement exists to ensure that a developer or team responsible for reviewing and approving a target does not face any legal threats or obligations that would prevent them from freely exercising their judgment in such approval, even if such judgment involves subjective matters or goes beyond the letter of these requirements.

OK.

> Tier 3 targets should attempt to implement as much of the standard libraries as possible and appropriate (core for most targets, alloc for targets that can support dynamic memory allocation, std for targets with an operating system or equivalent layer of system-provided functionality), but may leave some code unimplemented (either unavailable or stubbed out as appropriate), whether because the target makes it impossible to implement or challenging to implement. The authors of pull requests are not obligated to avoid calling any portions of the standard library on the basis of a tier 3 target not implementing those portions.

This is a bare-metal target with only support for `core` (and `alloc`, if the user provides an allocator).

> The target must provide documentation for the Rust community explaining how to build for the target, using cross-compilation if possible. If the target supports running binaries, or running tests (even if they do not pass), the documentation must explain how to run such binaries or tests for the target, using emulation if possible or dedicated hardware if necessary.

Documentation has been added.

> Tier 3 targets must not impose burden on the authors of pull requests, or other developers in the community, to maintain the target. In particular, do not post comments (automated or manual) on a PR that derail or suggest a block on the PR based on a tier 3 target. Do not send automated messages or notifications (via any medium, including via `@)` to a PR author or others involved with a PR regarding a tier 3 target, unless they have opted into such messages.

OK.

> Backlinks such as those generated by the issue/PR tracker when linking to an issue or PR are not considered a violation of this policy, within reason. However, such messages (even on a separate repository) must not generate notifications to anyone involved with a PR who has not requested such notifications.

OK.

> Patches adding or updating tier 3 targets must not break any existing tier 2 or tier 1 target, and must not knowingly break another tier 3 target without approval of either the compiler team or the maintainers of the other tier 3 target.

This doesn't break any other targets.

>> In particular, this may come up when working on closely related targets, such as variations of the same architecture with different features. Avoid introducing unconditional uses of features that another variation of the target may not have; use conditional compilation or runtime detection, as appropriate, to let each target run code supported by that target.

No unnecessary unconditional features here.

21 months agoAuto merge of #100096 - compiler-errors:fn-return-must-be-sized, r=jackh726
bors [Wed, 21 Sep 2022 04:35:20 +0000 (04:35 +0000)]
Auto merge of #100096 - compiler-errors:fn-return-must-be-sized, r=jackh726

a fn pointer doesn't implement `Fn`/`FnMut`/`FnOnce` if its return type isn't sized

I stumbled upon #83915 which hasn't received much attention recently, and I wanted to revive it since this is one existing soundness hole that seems pretty easy to fix.

I'm not actually sure that the [alternative approach described here](https://github.com/rust-lang/rust/pull/83915#issuecomment-823643322) is sufficient, given the `src/test/ui/function-pointer/unsized-ret.rs` example I provided below. Rebasing the branch mentioned in that comment and testing that UI test, it seems that we actually end up only observing that `str: !Sized` during monomorphization, whereupon we ICE. Even if we were to fix that ICE, ideally we'd be raising an error that a fn pointer is being used badly during _typecheck_ instead of monomorphization, hence adapting the original approach in #83915.

I am happy to close this if people would prefer we rebase the original PR and land that -- I am partly opening to be annoying and get people thinking about this unsoundness again :heart: :smile_cat:

cc: `@estebank` and `@nikomatsakis`
r? types

Here's a link to the thread: https://rust-lang.zulipchat.com/#narrow/stream/144729-t-types/topic/PR.20.2383915/near/235421351 for more context.

21 months agoOverhaul `-Zmeta-stats` output.
Nicholas Nethercote [Tue, 20 Sep 2022 06:08:25 +0000 (16:08 +1000)]
Overhaul `-Zmeta-stats` output.

It's now much more like the `-Zhir-stats` output.
- Each line is preceded with `meta-stats`, which makes the provenance
  clearer and allows filtering of the output.
- Sections are now sorted in reverse order of size.
- Column headings avoid the need to repeat the word "bytes" on every line.
- Long numbers now have `_` separators for easier reading.
- Consistent use of '-' within section labels, rather than a mix of '-',
  '_', and ' '.

The code itself is shorter and easier to read thanks to:
- the `stat` macro, which encapsulates each section's encoding, avoids
  some boilerplate, and removes the need for some low-value comments;
- the `stats` vector, which replaces dozens of local variables.

21 months agoAuto merge of #100214 - scottmcm:strict-range, r=thomcc
bors [Wed, 21 Sep 2022 00:41:33 +0000 (00:41 +0000)]
Auto merge of #100214 - scottmcm:strict-range, r=thomcc

Optimize `array::IntoIter`

`.into_iter()` on arrays was slower than it needed to be (especially compared to slice iterator) since it uses `Range<usize>`, which needs to handle degenerate ranges like `10..4`.

This PR adds an internal `IndexRange` type that's like `Range<usize>` but with a safety invariant that means it doesn't need to worry about those cases -- it only handles `start <= end` -- and thus can give LLVM more information to optimize better.

I added one simple demonstration of the improvement as a codegen test.

(`vec::IntoIter` uses pointers instead of indexes, so doesn't have this problem, but that only works because its elements are boxed.  `array::IntoIter` can't use pointers because that would keep it from being movable.)

21 months agoWrap some long comment lines.
Nicholas Nethercote [Tue, 20 Sep 2022 04:29:14 +0000 (14:29 +1000)]
Wrap some long comment lines.

21 months agoAuto merge of #100581 - joboet:sync_rwlock_everywhere, r=thomcc
bors [Tue, 20 Sep 2022 22:00:08 +0000 (22:00 +0000)]
Auto merge of #100581 - joboet:sync_rwlock_everywhere, r=thomcc

std: use `sync::RwLock` for internal statics

Since `sync::RwLock` is now `const`-constructible, it can be used for internal statics, removing the need for `sys_common::StaticRwLock`. This adds some extra allocations on platforms which need to box their locks (currently SGX and some UNIX), but these will become unnecessary with the lock improvements tracked in #93740.

21 months agoAuto merge of #102061 - notriddle:rollup-kwu9vp8, r=notriddle
bors [Tue, 20 Sep 2022 19:10:11 +0000 (19:10 +0000)]
Auto merge of #102061 - notriddle:rollup-kwu9vp8, r=notriddle

Rollup of 12 pull requests

Successful merges:

 - #100250 (Manually cleanup token stream when macro expansion aborts.)
 - #101014 (Fix -Zmeta-stats ICE by giving `FileEncoder` file read permissions)
 - #101958 (Improve error for when query is unsupported by crate)
 - #101976 (MirPhase: clarify that linting is not a semantic change)
 - #102001 (Use LLVM C-API to build atomic cmpxchg and fence)
 - #102008 (Add GUI test for notable traits element position)
 - #102013 (Simplify rpitit handling on lower_fn_decl)
 - #102021 (some post-valtree cleanup)
 - #102027 (rustdoc: remove `docblock` class from `item-decl`)
 - #102034 (rustdoc: remove no-op CSS `h1-6 { border-bottom-color }`)
 - #102038 (Make the `normalize-overflow` rustdoc test actually do something)
 - #102053 (:arrow_up: rust-analyzer)

Failed merges:

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

21 months agoRollup merge of #102053 - lnicola:rust-analyzer-2022-09-20, r=lnicola
Michael Howell [Tue, 20 Sep 2022 17:13:03 +0000 (10:13 -0700)]
Rollup merge of #102053 - lnicola:rust-analyzer-2022-09-20, r=lnicola

:arrow_up: rust-analyzer

r? ``@ghost``

21 months agoRollup merge of #102038 - jyn514:rustdoc-normalize-test, r=compiler-errors
Michael Howell [Tue, 20 Sep 2022 17:13:02 +0000 (10:13 -0700)]
Rollup merge of #102038 - jyn514:rustdoc-normalize-test, r=compiler-errors

Make the `normalize-overflow` rustdoc test actually do something

Since https://github.com/rust-lang/rust/pull/88679, rustdoc doesn't load crates eagerly. Add an explicit `extern crate` item to make sure the crate is loaded and the bug reproduces.
You can verify this fix by adding `// compile-flags: -Znormalize-docs` and running the test to make sure it gives an error.

21 months agoRollup merge of #102034 - notriddle:notriddle/border-bottom, r=GuillaumeGomez
Michael Howell [Tue, 20 Sep 2022 17:13:02 +0000 (10:13 -0700)]
Rollup merge of #102034 - notriddle:notriddle/border-bottom, r=GuillaumeGomez

rustdoc: remove no-op CSS `h1-6 { border-bottom-color }`

For this rule to have an actual effect, the border-bottom width needs specified, elsewhere, without also specifying the color. This doesn't happen. Ever since 88b137d5fe0cbe28dab4f9af61045c726f831872, every spot where headers get a border assigned to them also assigns the color.

Preview: https://notriddle.com/notriddle-rustdoc-test/border-bottom/rustc_monomorphize/collector/index.html

21 months agoRollup merge of #102027 - notriddle:notriddle/docblock-item-decl, r=GuillaumeGomez
Michael Howell [Tue, 20 Sep 2022 17:13:01 +0000 (10:13 -0700)]
Rollup merge of #102027 - notriddle:notriddle/docblock-item-decl, r=GuillaumeGomez

rustdoc: remove `docblock` class from `item-decl`

This class was originally added in 73b97c7e7c9cfac4dfa4804654b1db6ab687b589 to support hiding and showing the item, because `main.js` went through all `docblock` elements in the DOM and added toggles to them.

https://github.com/rust-lang/rust/blob/73b97c7e7c9cfac4dfa4804654b1db6ab687b589/src/librustdoc/html/static/main.js#L1856-L1867

The `item-decl` is no longer auto-hidden since c96f86de3026f864e78397aff9097e885f2f8fdf removed it.

`item-decl` used to be called `type-decl`: that name was changed in 8b7a2dd4626acf164e1ce8397878b3f5af83d585.

The `docblock` class is no longer used for implementing toggles, since rustdoc switched to using `<details>` elements.

Preview: https://notriddle.com/notriddle-rustdoc-test/docblock-item-decl/rustdoc/clean/types/enum.Type.html

21 months agoRollup merge of #102021 - lcnr:tyConst-fun, r=b-naber,BoxyUwU
Michael Howell [Tue, 20 Sep 2022 17:13:01 +0000 (10:13 -0700)]
Rollup merge of #102021 - lcnr:tyConst-fun, r=b-naber,BoxyUwU

some post-valtree cleanup

r? project-const-generics cc ```@b-naber```

21 months agoRollup merge of #102013 - spastorino:rpitit-lower-fn-decl, r=compiler-errors
Michael Howell [Tue, 20 Sep 2022 17:13:00 +0000 (10:13 -0700)]
Rollup merge of #102013 - spastorino:rpitit-lower-fn-decl, r=compiler-errors

Simplify rpitit handling on lower_fn_decl

r? `````@compiler-errors`````

21 months agoRollup merge of #102008 - GuillaumeGomez:notable-trait-gui-test, r=notriddle
Michael Howell [Tue, 20 Sep 2022 17:12:59 +0000 (10:12 -0700)]
Rollup merge of #102008 - GuillaumeGomez:notable-trait-gui-test, r=notriddle

Add GUI test for notable traits element position

Fixes #101891.

r? ````@notriddle````

21 months agoRollup merge of #102001 - cuviper:build-atomic-capi, r=nikic
Michael Howell [Tue, 20 Sep 2022 17:12:59 +0000 (10:12 -0700)]
Rollup merge of #102001 - cuviper:build-atomic-capi, r=nikic

Use LLVM C-API to build atomic cmpxchg and fence

We don't need C++ wrappers because the LLVM C API can build these.

21 months agoRollup merge of #101976 - RalfJung:mir-semantic-phases, r=oli-obk
Michael Howell [Tue, 20 Sep 2022 17:12:58 +0000 (10:12 -0700)]
Rollup merge of #101976 - RalfJung:mir-semantic-phases, r=oli-obk

MirPhase: clarify that linting is not a semantic change

r? ```@JakobDegen```

21 months agoRollup merge of #101958 - hanar3:101666/enhance-error-message, r=oli-obk
Michael Howell [Tue, 20 Sep 2022 17:12:58 +0000 (10:12 -0700)]
Rollup merge of #101958 - hanar3:101666/enhance-error-message, r=oli-obk

Improve error for when query is unsupported by crate

This is an improvement to the error message mentioned on #101666.  It seems like a good idea to also add [this link to the rustc-dev-guide](https://rustc-dev-guide.rust-lang.org/query.html), if explaining the query system in detail is a concern here, but I'm unsure if there is any restrictions on adding links to error messages.

21 months agoRollup merge of #101014 - isikkema:fix-zmeta-stats-file-encoder-no-read-perms, r...
Michael Howell [Tue, 20 Sep 2022 17:12:57 +0000 (10:12 -0700)]
Rollup merge of #101014 - isikkema:fix-zmeta-stats-file-encoder-no-read-perms, r=isikkema

Fix -Zmeta-stats ICE by giving `FileEncoder` file read permissions

Fixes #101001

As far as I can tell, #101001 is caused because the file is being created with write-only permissions here: https://github.com/rust-lang/rust/blob/master/compiler/rustc_serialize/src/opaque.rs#L196

but it is trying to be read here: https://github.com/rust-lang/rust/blob/master/compiler/rustc_metadata/src/rmeta/encoder.rs#L780

This PR attempts to fix this by creating/opening the file with the same permissions as `File::create()` with the addition of read.

21 months agoRollup merge of #100250 - cjgillot:recover-token-stream, r=Aaron1011
Michael Howell [Tue, 20 Sep 2022 17:12:56 +0000 (10:12 -0700)]
Rollup merge of #100250 - cjgillot:recover-token-stream, r=Aaron1011

Manually cleanup token stream when macro expansion aborts.

In case of syntax error in macro expansion, the expansion code can decide to stop processing anything. In that case, the token stream is malformed. This makes downstream users, like derive macros, ICE.

In this case, this PR manually cleans up the token stream by closing all currently open delimiters.

Fixes https://github.com/rust-lang/rust/issues/96818.
Fixes https://github.com/rust-lang/rust/issues/80447.
Fixes https://github.com/rust-lang/rust/issues/81920.
Fixes https://github.com/rust-lang/rust/issues/91023.

21 months agoAuto merge of #101989 - fee1-dead-contrib:const_trait_impl-assoc-caller-bounds, r...
bors [Tue, 20 Sep 2022 16:24:36 +0000 (16:24 +0000)]
Auto merge of #101989 - fee1-dead-contrib:const_trait_impl-assoc-caller-bounds, r=oli-obk

make projection bounds with const bounds satisfy const

Fixes #101982.

21 months ago:arrow_up: rust-analyzer
Laurențiu Nicola [Tue, 20 Sep 2022 14:39:17 +0000 (17:39 +0300)]
:arrow_up: rust-analyzer

21 months agoadd comment explaining read permissions
Sikkema, Isaac [Tue, 20 Sep 2022 14:06:50 +0000 (10:06 -0400)]
add comment explaining read permissions

21 months agoAuto merge of #99806 - oli-obk:unconstrained_opaque_type, r=estebank
bors [Tue, 20 Sep 2022 12:09:52 +0000 (12:09 +0000)]
Auto merge of #99806 - oli-obk:unconstrained_opaque_type, r=estebank

Allow patterns to constrain the hidden type of opaque types

fixes #96572

reverts a revert as original PR was a perf regression that was fixed by reverting it: https://github.com/rust-lang/rust/pull/99368#issuecomment-1186587864)

TODO:

* check if https://github.com/rust-lang/rust/issues/99685 is avoided

21 months agofix ConstProp handling of written_only_inside_own_block_locals
Ralf Jung [Tue, 20 Sep 2022 10:49:32 +0000 (12:49 +0200)]
fix ConstProp handling of written_only_inside_own_block_locals

21 months agoAuto merge of #101806 - BelovDV:issue-fix-fn-find_library, r=petrochenkov
bors [Tue, 20 Sep 2022 07:10:18 +0000 (07:10 +0000)]
Auto merge of #101806 - BelovDV:issue-fix-fn-find_library, r=petrochenkov

fix verbatim with upstream dependencies

https://github.com/rust-lang/rust/issues/99425#issuecomment-1207224161

r? `@petrochenkov`

21 months agofix verbatim with upstream dependencies
bors [Tue, 20 Sep 2022 07:10:17 +0000 (07:10 +0000)]
fix verbatim with upstream dependencies

https://github.com/rust-lang/rust/issues/99425#issuecomment-1207224161

r? `@petrochenkov`

21 months agoOptimize `array::IntoIter`
Scott McMurray [Sat, 4 Jun 2022 23:23:15 +0000 (16:23 -0700)]
Optimize `array::IntoIter`

`.into_iter()` on arrays was slower than it needed to be (especially compared to slice iterator) since it uses `Range<usize>`, which needs to handle degenerate ranges like `10..4`.

This PR adds an internal `IndexRange` type that's like `Range<usize>` but with a safety invariant that means it doesn't need to worry about those cases -- it only handles `start <= end` -- and thus can give LLVM more information to optimize better.

I added one simple demonstration of the improvement as a codegen test.

21 months agoMake the `normalize-overflow` rustdoc test actually do something
Joshua Nelson [Tue, 20 Sep 2022 03:49:37 +0000 (22:49 -0500)]
Make the `normalize-overflow` rustdoc test actually do something

Since https://github.com/rust-lang/rust/pull/88679, rustdoc doesn't load crates eagerly.
Add an explicit `extern crate` item to make sure the crate is loaded and the bug reproduces.
You can verify this fix by adding `// compile-flags: -Znormalizing-docs` and running the test.

21 months agoRemove useless color assertions on 0px borders
Michael Howell [Tue, 20 Sep 2022 01:12:21 +0000 (18:12 -0700)]
Remove useless color assertions on 0px borders

21 months agorustdoc: remove no-op CSS `h1-6 { border-bottom-color }`
Michael Howell [Tue, 20 Sep 2022 00:37:36 +0000 (17:37 -0700)]
rustdoc: remove no-op CSS `h1-6 { border-bottom-color }`

For this rule to have an actual effect, the border-bottom width needs
specified, elsewhere, without also specifying the color. This doesn't
happen. Ever since 88b137d5fe0cbe28dab4f9af61045c726f831872, every spot
where headers get a border assigned to them also assigns the color.

21 months agoAuto merge of #102022 - matthiaskrgr:rollup-emwfjd1, r=matthiaskrgr
bors [Tue, 20 Sep 2022 02:20:15 +0000 (02:20 +0000)]
Auto merge of #102022 - matthiaskrgr:rollup-emwfjd1, r=matthiaskrgr

Rollup of 11 pull requests

Successful merges:

 - #101389 (Tone down explanation on RefCell::get_mut)
 - #101798 (Make `from_waker`, `waker` and `from_raw` unstably `const`)
 - #101881 (Remove an unused struct field `late_bound`)
 - #101904 (Add help for invalid inline argument)
 - #101966 (Add unit test for identifier Unicode emoji diagnostics)
 - #101979 (Update release notes for 1.64)
 - #101985 (interpret: expose generate_stacktrace without full InterpCx)
 - #102004 (Try to clarify what's new in 1.64.0 ffi types)
 - #102005 (rustdoc: remove unused CSS `td.summary-column`)
 - #102017 (Add all submodules to the list of directories tidy skips)
 - #102019 (Remove backed off PRs from relnotes)

Failed merges:

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

21 months agoAuto merge of #101909 - weihanglo:update-cargo, r=ehuss
bors [Mon, 19 Sep 2022 23:18:12 +0000 (23:18 +0000)]
Auto merge of #101909 - weihanglo:update-cargo, r=ehuss

Update cargo (CVE fixes included)

8 commits in 082503982ea0fb7a8fd72210427d43a2e2128a63..73ba3f35e0205844418260722c11602113179c4a
2022-09-13 17:49:38 +0000 to 2022-09-18 06:38:16 +0000

- Revert "Clarify when cargo detects changes" (https://github.com/rust-lang/cargo/pull/11107)
- Fix links to workspace inheritance headings in workspace docs (https://github.com/rust-lang/cargo/pull/11103)
- docs(ref): Clarify workspace settings (https://github.com/rust-lang/cargo/pull/11082)
- Update comment about ResolveVersion default version (https://github.com/rust-lang/cargo/pull/11095)
- [master] Run `reach_max_unpack_size` test only on debug build (https://github.com/rust-lang/cargo/pull/11091)
- Clarify when cargo detects changes (https://github.com/rust-lang/cargo/pull/11092)
- [master] Fix for https://github.com/advisories/GHSA-rfj2-q3h3-hm5j and https://github.com/advisories/GHSA-2hvr-h6gw-qrxp (https://github.com/rust-lang/cargo/pull/11089)
- Expose cargo add internals as edit API (https://github.com/rust-lang/cargo/pull/11059)

21 months agoAdding ignore fuchsia tests for Backtrace, ErrorKind cases
Andrew Pollack [Mon, 19 Sep 2022 21:00:10 +0000 (21:00 +0000)]
Adding ignore fuchsia tests for Backtrace, ErrorKind cases

21 months agostd: use `sync::RwLock` for internal statics
joboet [Mon, 15 Aug 2022 12:33:12 +0000 (14:33 +0200)]
std: use `sync::RwLock` for internal statics

21 months agorustdoc: update test cases for changed item-decl HTML
Michael Howell [Mon, 19 Sep 2022 19:17:05 +0000 (12:17 -0700)]
rustdoc: update test cases for changed item-decl HTML

21 months agorustdoc: remove `docblock` class from `item-decl`
Michael Howell [Mon, 19 Sep 2022 17:52:13 +0000 (10:52 -0700)]
rustdoc: remove `docblock` class from `item-decl`

This class was originally added in 73b97c7e7c9cfac4dfa4804654b1db6ab687b589
to support hiding and showing the item, because `main.js` went through all
`docblock` elements in the DOM and added toggles to them.

https://github.com/rust-lang/rust/blob/73b97c7e7c9cfac4dfa4804654b1db6ab687b589/src/librustdoc/html/static/main.js#L1856-L1867

The `item-decl` is no longer auto-hidden since
c96f86de3026f864e78397aff9097e885f2f8fdf removed it.

`item-decl` used to be called `type-decl`: that name was changed in
8b7a2dd4626acf164e1ce8397878b3f5af83d585.

The `docblock` class is no longer used for implementing toggles, since
rustdoc switched to using `<details>` elements.

21 months agoAuto merge of #101894 - dingxiangfei2009:let-else-avoid-duplicate-storage-live, r...
bors [Mon, 19 Sep 2022 17:27:30 +0000 (17:27 +0000)]
Auto merge of #101894 - dingxiangfei2009:let-else-avoid-duplicate-storage-live, r=oli-obk

Avoid duplicating StorageLive in let-else

cc `@est31`

Fix #101867
Fix #101932

#101410 introduced directives to activate storages of bindings in let-else earlier. However, since it is using the machinery of `match` and friends for pattern matching and binding, those storages are activated for the second time. This PR adjusts this behavior and avoid the duplicated activation for let-else statements.

21 months agoRollup merge of #102019 - pietroalbini:pa-relnotes-revert, r=pietroalbini
Matthias Krüger [Mon, 19 Sep 2022 15:55:24 +0000 (17:55 +0200)]
Rollup merge of #102019 - pietroalbini:pa-relnotes-revert, r=pietroalbini

Remove backed off PRs from relnotes

Backport of https://github.com/rust-lang/rust/pull/102018/commits/7358a9b03e5d22ea4d74d89cb00d3985fc89c773 to master.

21 months agoRollup merge of #102017 - est31:rustc_dev_guide_tidy_skip, r=Mark-Simulacrum
Matthias Krüger [Mon, 19 Sep 2022 15:55:24 +0000 (17:55 +0200)]
Rollup merge of #102017 - est31:rustc_dev_guide_tidy_skip, r=Mark-Simulacrum

Add all submodules to the list of directories tidy skips

Tidy contains a blacklist of directories that it is not visiting. This list is also used by the `replace-version-placeholder` tool added by #100591 , to determine the directories to do its replacement from. Generally, tidy does not check submodules, but this is not done consistently for all submodules. This PR adds the submodules that were previously missing, so that the `replace-version-placeholder` tool does not attempt to change content of the books. This was needed because `rustc-dev-guide` contains the placeholder, leading to #102014.

Fixes #102014

21 months agoRollup merge of #102005 - notriddle:notriddle/td-summary-column, r=Dylan-DPC
Matthias Krüger [Mon, 19 Sep 2022 15:55:23 +0000 (17:55 +0200)]
Rollup merge of #102005 - notriddle:notriddle/td-summary-column, r=Dylan-DPC

rustdoc: remove unused CSS `td.summary-column`

It was added in 2a1bad70dd9bc99d8db54964108b42da8f4e9fbd to go with this module summary function:

https://github.com/rust-lang/rust/blob/2a1bad70dd9bc99d8db54964108b42da8f4e9fbd/src/librustdoc/html/format.rs#L767-L780

The corresponding HTML was removed in 0a46933c4d81573e78ce16cd215ba155a3114fce.

21 months agoRollup merge of #102004 - cuviper:relnotes-1.64.0-ffi, r=pietroalbini
Matthias Krüger [Mon, 19 Sep 2022 15:55:22 +0000 (17:55 +0200)]
Rollup merge of #102004 - cuviper:relnotes-1.64.0-ffi, r=pietroalbini

Try to clarify what's new in 1.64.0 ffi types

21 months agoRollup merge of #101985 - RalfJung:generate_stacktrace, r=oli-obk
Matthias Krüger [Mon, 19 Sep 2022 15:55:21 +0000 (17:55 +0200)]
Rollup merge of #101985 - RalfJung:generate_stacktrace, r=oli-obk

interpret: expose generate_stacktrace without full InterpCx

In Miri we sometimes want to emit diagnostics without having a full `&InterpCx` available. To avoid duplicating code, this adds a way to get a stacktrace from an arbitrary slice of interpreter frames, that Miri can use with access to just a thread manager.

21 months agoRollup merge of #101979 - rust-lang:pa-update-relnotes, r=Mark-Simulacrum
Matthias Krüger [Mon, 19 Sep 2022 15:55:21 +0000 (17:55 +0200)]
Rollup merge of #101979 - rust-lang:pa-update-relnotes, r=Mark-Simulacrum

Update release notes for 1.64

This PR makes a few updates to the release notes to bring them on-par with the release notes of other releases:

* The wording on some items has been changed to be more consistent and better describe what each change means, rather than using the PR title.
* Items that were also in the compatibility notes have been removed from the other sections, only keeping them in the compat notes.
* Diagnostics and ICE fixes have been removed from the notes.
* The cargo section has been made more consistent.

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

21 months agoRollup merge of #101966 - crlf0710:emoji_unittest, r=Mark-Simulacrum
Matthias Krüger [Mon, 19 Sep 2022 15:55:20 +0000 (17:55 +0200)]
Rollup merge of #101966 - crlf0710:emoji_unittest, r=Mark-Simulacrum

Add unit test for identifier Unicode emoji diagnostics

Seems current diagnostics has some support for emoji usages, however it seems outdated and incomplete. This adds a simple unit test to showcase the status quo.

21 months agoRollup merge of #101904 - Rageking8:fix-101712, r=oli-obk
Matthias Krüger [Mon, 19 Sep 2022 15:55:20 +0000 (17:55 +0200)]
Rollup merge of #101904 - Rageking8:fix-101712, r=oli-obk

Add help for invalid inline argument

Fixes #101712

Removed 1 part of the test as its identical with another one. Do let me know if this is undesirable, so I can revert those changes.

21 months agoRollup merge of #101881 - TaKO8Ki:remove-unused-struct-field, r=sanxiyn
Matthias Krüger [Mon, 19 Sep 2022 15:55:19 +0000 (17:55 +0200)]
Rollup merge of #101881 - TaKO8Ki:remove-unused-struct-field, r=sanxiyn

Remove an unused struct field `late_bound`

21 months agoRollup merge of #101798 - y86-dev:const_waker, r=lcnr
Matthias Krüger [Mon, 19 Sep 2022 15:55:19 +0000 (17:55 +0200)]
Rollup merge of #101798 - y86-dev:const_waker, r=lcnr

Make `from_waker`, `waker` and `from_raw` unstably `const`

Make
- `Context::from_waker`
- `Context::waker`
- `Waker::from_raw`

`const`.

Also added a small test.

21 months agoRollup merge of #101389 - lukaslueg:rcgetmutdocs, r=m-ou-se
Matthias Krüger [Mon, 19 Sep 2022 15:55:18 +0000 (17:55 +0200)]
Rollup merge of #101389 - lukaslueg:rcgetmutdocs, r=m-ou-se

Tone down explanation on RefCell::get_mut

The language around `RefCell::get_mut` is remarkably sketchy and especially to the novice seems to quite strongly discourage using the method ("be cautious", "Also, please be aware", "special circumstances", "usually not what you want"). It was added six years ago in #40634 due to confusion about when to use `get_mut` and `borrow_mut`.

While its signature limits the use-cases for `get_mut`, there is no chance for a safety footgun, and readers can be made aware of `borrow_mut` more softly. I've also just sent a [PR](https://github.com/rust-lang/rust-clippy/issues/9044) to lint situations where `get_mut` could be used to improve ergonomics and performance.

So this PR tones down the language around `get_mut` and also brings it more in line with [`std::sync::Mutex::get_mut()`](https://doc.rust-lang.org/stable/std/sync/struct.Mutex.html#method.get_mut).

21 months agoDocument projection condition
Oli Scherer [Mon, 19 Sep 2022 15:33:36 +0000 (15:33 +0000)]
Document projection condition

21 months ago`DestructuredConst` split mir and ty
lcnr [Mon, 19 Sep 2022 15:00:38 +0000 (17:00 +0200)]
`DestructuredConst` split mir and ty

21 months agoctfe, `const_to_op` only for mir constants
lcnr [Mon, 19 Sep 2022 14:17:33 +0000 (16:17 +0200)]
ctfe, `const_to_op` only for mir constants

21 months agoremove `ty::Const::from_inline_const`
lcnr [Mon, 19 Sep 2022 14:10:18 +0000 (16:10 +0200)]
remove `ty::Const::from_inline_const`

21 months agoremove `FnCtxt::to_const`
lcnr [Mon, 19 Sep 2022 14:08:40 +0000 (16:08 +0200)]
remove `FnCtxt::to_const`

21 months agoremove backed off PR from relnotes
Pietro Albini [Mon, 19 Sep 2022 13:29:13 +0000 (15:29 +0200)]
remove backed off PR from relnotes

21 months agoAdd all submodules to the list of directories tidy skips
est31 [Mon, 19 Sep 2022 13:11:15 +0000 (15:11 +0200)]
Add all submodules to the list of directories tidy skips

I ran git config --file .gitmodules --name-only --get-regexp path
and added all submodules that were not already in the list to it.

21 months agoAdded tracking issue
y86-dev [Mon, 19 Sep 2022 13:07:12 +0000 (15:07 +0200)]
Added tracking issue

21 months agoSimplify rpitit handling on lower_fn_decl
Santiago Pastorino [Mon, 19 Sep 2022 12:29:12 +0000 (09:29 -0300)]
Simplify rpitit handling on lower_fn_decl

21 months agoAdd GUI test for notable traits element position
Guillaume Gomez [Mon, 19 Sep 2022 10:32:30 +0000 (12:32 +0200)]
Add GUI test for notable traits element position

21 months agoAuto merge of #101901 - lcnr:early-binder-type-foldable, r=compiler-errors
bors [Mon, 19 Sep 2022 10:35:09 +0000 (10:35 +0000)]
Auto merge of #101901 - lcnr:early-binder-type-foldable, r=compiler-errors

`EarlyBinder` prevent misuse

folding a type before substituting is pretty much always wrong and could happen by accident, e.g. see https://github.com/rust-lang/rust/pull/99798#discussion_r968666538

this PR removes the `TypeFoldable` and `TypeVisitable` impl from `EarlyBinder`.

r? types cc `@jackh726`

21 months agoAuto merge of #13257 - rust-lang:revert-13147-fix/dyn-ty-inherent-methods, r=lnicola
bors [Mon, 19 Sep 2022 09:46:21 +0000 (09:46 +0000)]
Auto merge of #13257 - rust-lang:revert-13147-fix/dyn-ty-inherent-methods, r=lnicola

fix: Fix a crash introduced in #13147

Reverts rust-lang/rust-analyzer#13147

https://github.com/rust-lang/rust-analyzer/actions/runs/3041499441/jobs/4898678721#step:18:62

21 months agoTry to fix crash introduced in #13147
Laurențiu Nicola [Mon, 19 Sep 2022 09:45:38 +0000 (12:45 +0300)]
Try to fix crash introduced in #13147

21 months agoextend polymorphization hack comment.
lcnr [Mon, 19 Sep 2022 09:44:29 +0000 (11:44 +0200)]
extend polymorphization hack comment.

21 months agoremove the `Subst` trait, always use `EarlyBinder`
lcnr [Fri, 16 Sep 2022 13:31:10 +0000 (15:31 +0200)]
remove the `Subst` trait, always use `EarlyBinder`

21 months agodo not implement type traversal for `EarlyBinder`
lcnr [Fri, 16 Sep 2022 13:09:38 +0000 (15:09 +0200)]
do not implement type traversal for `EarlyBinder`

21 months agoAuto merge of #101629 - compiler-errors:issue-101623, r=sanxiyn
bors [Mon, 19 Sep 2022 07:41:54 +0000 (07:41 +0000)]
Auto merge of #101629 - compiler-errors:issue-101623, r=sanxiyn

Be careful about `expr_ty_adjusted` when noting block tail type

Fixes #101623

21 months agoAuto merge of #101924 - jackh726:revert-static-hrtb-error, r=compiler-errors
bors [Mon, 19 Sep 2022 04:56:14 +0000 (04:56 +0000)]
Auto merge of #101924 - jackh726:revert-static-hrtb-error, r=compiler-errors

Re-add HRTB implied static bug note

r? `@compiler-errors` since you reviewed it previously

I deleted a `normalize` call and forgot about it. Whoops.

21 months agorustdoc: remove unused CSS `td.summary-column`
Michael Howell [Mon, 19 Sep 2022 03:03:17 +0000 (20:03 -0700)]
rustdoc: remove unused CSS `td.summary-column`

It was added in 2a1bad70dd9bc99d8db54964108b42da8f4e9fbd to go with this
module summary function:

https://github.com/rust-lang/rust/blob/2a1bad70dd9bc99d8db54964108b42da8f4e9fbd/src/librustdoc/html/format.rs#L767-L780

The corresponding HTML was removed in
0a46933c4d81573e78ce16cd215ba155a3114fce.

21 months agoTry to clarify what's new in 1.64.0 ffi types
Josh Stone [Mon, 19 Sep 2022 02:24:57 +0000 (19:24 -0700)]
Try to clarify what's new in 1.64.0 ffi types

21 months agoAuto merge of #101799 - LukeMathWalker:distribute-json-doc, r=jyn514
bors [Mon, 19 Sep 2022 02:13:54 +0000 (02:13 +0000)]
Auto merge of #101799 - LukeMathWalker:distribute-json-doc, r=jyn514

Distribute json doc

# Overview

We add a new component, `rust-json-docs`, to distribute the JSON version of rustdoc's output for public compiler crates (i.e. `std`, `alloc`, `proc_macro`, `core` and `test`).
As discussed in #101383, we do not bundle this up as part of the existing `rust-docs` component since `rustdoc`'s JSON format is still unstable.

# Open questions / Doubts

I tried my best, but I never touched this codebase and I couldn't find much documentation on how `dist` works - I pattern-matched existing code, which might have led to some non-sensical choices in the eyes of people more familiar with the codebase. In particular, I am not sure if my choice of adding a new config flag is appropriate or if the decision to build/not build the JSON docs is more appropriately gated by one of the existing flags.
Any suggestion is more than welcome.

Closes #101383

21 months agoUse LLVM C-API to build atomic cmpxchg and fence
Josh Stone [Sun, 18 Sep 2022 22:49:49 +0000 (15:49 -0700)]
Use LLVM C-API to build atomic cmpxchg and fence

21 months agoAdd another example for `uN::carrying_mul`
Scott McMurray [Sun, 18 Sep 2022 19:55:38 +0000 (12:55 -0700)]
Add another example for `uN::carrying_mul`

The prose talked about doing this, so might as well add a simple code example of it too.

21 months agointerpret: expose generate_stacktrace without full InterpCx
Ralf Jung [Sun, 18 Sep 2022 17:08:14 +0000 (19:08 +0200)]
interpret: expose generate_stacktrace without full InterpCx

21 months agomake projection bounds with const bounds satisfy const
Deadbeef [Sun, 18 Sep 2022 17:38:18 +0000 (17:38 +0000)]
make projection bounds with const bounds satisfy const

21 months agoAuto merge of #13253 - Veykril:simplify, r=Veykril
bors [Sun, 18 Sep 2022 17:52:21 +0000 (17:52 +0000)]
Auto merge of #13253 - Veykril:simplify, r=Veykril

Simplify

21 months agoSimplify
Lukas Wirth [Sun, 18 Sep 2022 17:44:38 +0000 (19:44 +0200)]
Simplify

21 months agoAuto merge of #13058 - dpaoliello:extraenv, r=Veykril
bors [Sun, 18 Sep 2022 17:43:46 +0000 (17:43 +0000)]
Auto merge of #13058 - dpaoliello:extraenv, r=Veykril

Add a new configuration settings to set env vars when running cargo, rustc, etc. commands: cargo.extraEnv and checkOnSave.extraEnv

It can be extremely useful to be able to set environment variables when rust-analyzer is running various cargo or rustc commands (such as `cargo check`, `cargo --print cfg` or `cargo metadata`): users may want to set custom `RUSTFLAGS`, change `PATH` to use a custom toolchain or set a different `CARGO_HOME`.

There is the existing `server.extraEnv` setting that allows env vars to be set when the rust-analyzer server is launched, but using this as the recommended mechanism to also configure cargo/rust has some drawbacks:
- It convolutes configuring the rust-analyzer server with configuring cargo/rustc (one may want to change the `PATH` for cargo/rustc without affecting the rust-analyzer server).
- The name `server.extraEnv` doesn't indicate that cargo/rustc will be affected but renaming it to `cargo.extraEnv` doesn't indicate that the rust-analyzer server would be affected.
- To make the setting useful, it needs to be dynamically reloaded without requiring that the entire extension is reloaded. It might be possible to do this, but it would require the client communicating to the server what the overwritten env vars were at first launch, which isn't easy to do.

This change adds two new configuration settings: `cargo.extraEnv` and `checkOnSave.extraEnv` that can be used to change the environment for the rust-analyzer server after launch (thus affecting any process that rust-analyzer invokes) and the `cargo check` command respectively. `cargo.extraEnv` supports dynamic changes by keeping track of the pre-change values of environment variables, thus it can undo changes made previously before applying the new configuration (and then requesting a workspace reload).

21 months agoremove ice fix
Pietro Albini [Sun, 18 Sep 2022 14:11:28 +0000 (16:11 +0200)]
remove ice fix

21 months agomake the styling of the cargo section similar to the rest
Pietro Albini [Sun, 18 Sep 2022 14:09:11 +0000 (16:09 +0200)]
make the styling of the cargo section similar to the rest

21 months agoremove diagnostic changes
Pietro Albini [Sun, 18 Sep 2022 14:06:03 +0000 (16:06 +0200)]
remove diagnostic changes

21 months agoremove items that are already mentioned in the compatibility notes
Pietro Albini [Sun, 18 Sep 2022 14:05:27 +0000 (16:05 +0200)]
remove items that are already mentioned in the compatibility notes

21 months agoimprove the wording for some release notes items
Pietro Albini [Sun, 18 Sep 2022 14:04:07 +0000 (16:04 +0200)]
improve the wording for some release notes items

21 months agoAuto merge of #101332 - sashashura:patch-1, r=pietroalbini
bors [Sun, 18 Sep 2022 14:10:57 +0000 (14:10 +0000)]
Auto merge of #101332 - sashashura:patch-1, r=pietroalbini

GitHub Workflows security hardening

This PR adds explicit [permissions section](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions) to workflows. This is a security best practice because by default workflows run with [extended set of permissions](https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) (except from `on: pull_request` [from external forks](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)). By specifying any permission explicitly all others are set to none. By using the principle of least privilege the damage a compromised workflow can do (because of an [injection](https://securitylab.github.com/research/github-actions-untrusted-input/) or compromised third party tool or action) is restricted.
It is recommended to have [most strict permissions on the top level](https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions) and grant write permissions on [job level](https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs) case by case.

21 months agoclarify that linting is not a semantic change
Ralf Jung [Sun, 18 Sep 2022 11:57:01 +0000 (13:57 +0200)]
clarify that linting is not a semantic change

21 months agoAuto merge of #101955 - jam1garner:fix-proc-macro-typo, r=petrochenkov
bors [Sun, 18 Sep 2022 11:42:13 +0000 (11:42 +0000)]
Auto merge of #101955 - jam1garner:fix-proc-macro-typo, r=petrochenkov

Fix typo in proc_macro Span::eq documentation

21 months agoAuto merge of #101963 - scottmcm:from-ptr-range-optimization, r=Mark-Simulacrum
bors [Sun, 18 Sep 2022 08:44:27 +0000 (08:44 +0000)]
Auto merge of #101963 - scottmcm:from-ptr-range-optimization, r=Mark-Simulacrum

Add a codegen test for `slice::from_ptr_range`

I noticed back in #95579 that this didn't optimize as well as it should.

It's better now, after #95837 changed the code in `from_ptr_range` and https://github.com/llvm/llvm-project/issues/54824 was fixed in LLVM 15.

So here's a test to keep it generating the good version.

21 months agoUpdate cargo
Weihang Lo [Fri, 16 Sep 2022 17:24:45 +0000 (18:24 +0100)]
Update cargo

8 commits in 082503982ea0fb7a8fd72210427d43a2e2128a63..73ba3f35e0205844418260722c11602113179c4a
2022-09-13 17:49:38 +0000 to 2022-09-18 06:38:16 +0000

- Revert "Clarify when cargo detects changes" (rust-lang/cargo#11107)
- Fix links to workspace inheritance headings in workspace docs (rust-lang/cargo#11103)
- docs(ref): Clarify workspace settings (rust-lang/cargo#11082)
- Update comment about ResolveVersion default version (rust-lang/cargo#11095)
- [master] Run `reach_max_unpack_size` test only on debug build (rust-lang/cargo#11091)
- Clarify when cargo detects changes (rust-lang/cargo#11092)
- [master] Fix for CVE-2022-36113 and CVE-2022-36114 (rust-lang/cargo#11089)
- Expose cargo add internals as edit API (rust-lang/cargo#11059)

21 months agoAdd unit test for identifier Unicode emoji diagnostics
Charles Lew [Sat, 17 Sep 2022 08:04:02 +0000 (16:04 +0800)]
Add unit test for identifier Unicode emoji diagnostics

21 months agoAuto merge of #101816 - raldone01:cleanup/select_nth_unstable, r=Mark-Simulacrum
bors [Sun, 18 Sep 2022 06:03:22 +0000 (06:03 +0000)]
Auto merge of #101816 - raldone01:cleanup/select_nth_unstable, r=Mark-Simulacrum

Cleanup slice sort related closures in core and alloc

21 months agoadd miri test via const fn
Ding Xiang Fei [Sun, 18 Sep 2022 04:18:34 +0000 (12:18 +0800)]
add miri test via const fn

21 months agoadd mir-opt test
Ding Xiang Fei [Fri, 16 Sep 2022 11:54:41 +0000 (19:54 +0800)]
add mir-opt test

21 months agoavoid duplicating StorageLive in let-else
Ding Xiang Fei [Fri, 16 Sep 2022 11:02:45 +0000 (19:02 +0800)]
avoid duplicating StorageLive in let-else

21 months agoAuto merge of #101960 - matthiaskrgr:rollup-1l5v7ip, r=matthiaskrgr
bors [Sun, 18 Sep 2022 03:40:01 +0000 (03:40 +0000)]
Auto merge of #101960 - matthiaskrgr:rollup-1l5v7ip, r=matthiaskrgr

Rollup of 5 pull requests

Successful merges:

 - #101151 (Document x86_64-fortanix-unknown-sgx platform)
 - #101912 (Update `unicode-rs` crates to Unicode 15)
 - #101923 (Don't add rustdoc's CSS to other doc pages)
 - #101953 (Fix tooltip display for error codes)
 - #101954 (rustdoc: remove redundant `.location a { font-weight: 500 }`)

Failed merges:

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

21 months agoAdd a codegen test for slice::from_ptr_range
Scott McMurray [Sun, 18 Sep 2022 01:54:00 +0000 (18:54 -0700)]
Add a codegen test for slice::from_ptr_range

21 months agoRollup merge of #101954 - notriddle:notriddle/location-a-first-of-type, r=GuillaumeGomez
Matthias Krüger [Sun, 18 Sep 2022 00:55:31 +0000 (02:55 +0200)]
Rollup merge of #101954 - notriddle:notriddle/location-a-first-of-type, r=GuillaumeGomez

rustdoc: remove redundant `.location a { font-weight: 500 }`

The `class="location"` element is an h2, either in the sidebar or in the mobile header. Either way, it already has `font-weight: 500`, which the link inside will inherit.

The original version of this rule was added in 9e82fc7ef9b6c8a344dd27583990b02a661af78c. At that time, the location header was rendered as a paragraph with the full path:

https://github.com/rust-lang/rust/blob/9e82fc7ef9b6c8a344dd27583990b02a661af78c/src/librustdoc/html/render.rs#L2080

Nowadays, it's rendered as a true header, with only the name of the item, and the full path is included in a separate `fqn` header:

https://github.com/rust-lang/rust/blob/98ad6a5519651af36e246c0335c964dd52c554ba/src/librustdoc/html/render/mod.rs#L1797

21 months agoRollup merge of #101953 - GuillaumeGomez:fix-error-code-tooltip, r=notriddle
Matthias Krüger [Sun, 18 Sep 2022 00:55:30 +0000 (02:55 +0200)]
Rollup merge of #101953 - GuillaumeGomez:fix-error-code-tooltip, r=notriddle

Fix tooltip display for error codes

Fixes #101919.

You can test it [here](https://rustdoc.crud.net/imperio/fix-error-code-tooltip/index.html).

cc `@jsha`
r? `@notriddle`