]> git.lizzy.rs Git - rust.git/log
rust.git
21 months agorustc_transmute: fix big-endian discriminants
Josh Stone [Tue, 20 Sep 2022 20:03:43 +0000 (13:03 -0700)]
rustc_transmute: fix big-endian discriminants

21 months agoAdding needs-unwind to tests involving changing memory size of Futures/Closures
Andrew Pollack [Tue, 20 Sep 2022 19:46:27 +0000 (19:46 +0000)]
Adding needs-unwind to tests involving changing memory size of Futures/Closures

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 agoBetter binder treatment
Michael Goulet [Tue, 20 Sep 2022 16:39:39 +0000 (16:39 +0000)]
Better binder treatment

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 agoAuto merge of #9502 - c410-f3r:arith, r=Alexendoo
bors [Tue, 20 Sep 2022 16:14:54 +0000 (16:14 +0000)]
Auto merge of #9502 - c410-f3r:arith, r=Alexendoo

[arithmetic-side-effects] Add more tests

Taken from the `integer-arithmetic` lint.

changelog: [arithmetic-side-effects] Add more tests

21 months agoClarify Path::extension() semantics in docs abstract
Mahmoud Al-Qudsi [Tue, 20 Sep 2022 16:12:03 +0000 (11:12 -0500)]
Clarify Path::extension() semantics in docs abstract

State up-front and center what shape the returned extension will have, without
making the user read through the description and examples.

Rationale: Various frameworks and libraries for different platforms have their
different conventions as to whether an "extension" is ".ext" or just "ext" and
anyone that's had to deal with this ambiguity in the past is always double- or
triple-checking to make sure the function call returns an extension that matches
the expected semantics. Offer the answer to this important question right off
the bat instead of making them dig to find it.

21 months agoAdd test for sidebar elements in the "All types" page
Guillaume Gomez [Tue, 20 Sep 2022 15:10:38 +0000 (17:10 +0200)]
Add test for sidebar elements in the "All types" page

21 months agoGenerate sidebar elements for the "All items" page
Guillaume Gomez [Tue, 20 Sep 2022 14:46:06 +0000 (16:46 +0200)]
Generate sidebar elements for the "All items" page

21 months ago[arithmetic_side_effects] Add more tests
Caio [Tue, 20 Sep 2022 15:06:49 +0000 (12:06 -0300)]
[arithmetic_side_effects] Add more tests

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 #2553 - RalfJung:macos-is-a-pain, r=RalfJung
bors [Tue, 20 Sep 2022 08:19:56 +0000 (08:19 +0000)]
Auto merge of #2553 - RalfJung:macos-is-a-pain, r=RalfJung

make a sync test more reliable

CI still failed in https://github.com/rust-lang/miri/actions/runs/3088146532/jobs/4994285794, with a 2 second timeout?!??

21 months agomake a sync test more reliable
Ralf Jung [Tue, 20 Sep 2022 07:54:18 +0000 (09:54 +0200)]
make a sync test more reliable

21 months agoAuto merge of #2552 - RalfJung:env-term, r=oli-obk
bors [Tue, 20 Sep 2022 07:16:58 +0000 (07:16 +0000)]
Auto merge of #2552 - RalfJung:env-term, r=oli-obk

remove Windows TERM env var hack and -Zmiri-env-exclude

The hack should not be needed any more since https://github.com/rust-lang/rust/pull/100206. And that also mostly removes the need for `-Zmiri-env-exclude` -- if needed, users can still achieve the same by running `(unset VAR; cargo miri test)`.

I am keeping `-Zmiri-env-forward` since it is still useful, e.g. to have RUST_BACKTRACE=full set in an otherwise deterministic execution.

`@rust-lang/miri` any objections to removing `-Zmiri-env-exclude`?

21 months agowork harder around notorious macos unrealiability
Ralf Jung [Tue, 20 Sep 2022 07:14:14 +0000 (09:14 +0200)]
work harder around notorious macos unrealiability

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 agoremove Windows TERM env var hack and -Zmiri-env-exclude
Ralf Jung [Tue, 20 Sep 2022 06:42:45 +0000 (08:42 +0200)]
remove Windows TERM env var hack and -Zmiri-env-exclude

21 months agoAuto merge of #2548 - RalfJung:remove-tls-diagnostics-hack, r=RalfJung
bors [Tue, 20 Sep 2022 06:42:05 +0000 (06:42 +0000)]
Auto merge of #2548 - RalfJung:remove-tls-diagnostics-hack, r=RalfJung

avoid thread-local var indirection for non-halting diagnostics

This hack used to be necessary because Stacked Borrows did not have access to enough parts of the machine. But that got fixed a while ago, so now we can just emit diagnostics directly, which is a lot more reliable.

Needs https://github.com/rust-lang/rust/pull/101985
Fixes https://github.com/rust-lang/miri/issues/2538

21 months agorustup, fmt
Ralf Jung [Tue, 20 Sep 2022 06:37:36 +0000 (08:37 +0200)]
rustup, fmt

21 months agomake some names more consistent
Ralf Jung [Mon, 19 Sep 2022 12:44:42 +0000 (14:44 +0200)]
make some names more consistent

21 months agoput a tcx into the Machine so that we have to pass around fewer things
Ralf Jung [Mon, 19 Sep 2022 12:43:02 +0000 (14:43 +0200)]
put a tcx into the Machine so that we have to pass around fewer things

21 months agoavoid thread-local var indirection for non-halting diagnostics
Ralf Jung [Sun, 18 Sep 2022 19:52:38 +0000 (21:52 +0200)]
avoid thread-local var indirection for non-halting diagnostics

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 agoMake cycle errors recoverable
Joshua Nelson [Tue, 20 Sep 2022 01:45:00 +0000 (20:45 -0500)]
Make cycle errors recoverable

In particular, this allows rustdoc to recover from cycle errors when normalizing associated types for documentation.

In the past, `@jackh726` has said we need to be careful about overflow errors:

> Off the top of my head, we definitely should be careful about treating overflow errors the same as
"not implemented for some reason" errors. Otherwise, you could end up with behavior that is
different depending on recursion depth. But, that might be context-dependent.

But cycle errors should be safe to unconditionally report; they don't depend on the recursion depth, they will always be an error whenever they're encountered.

21 months agoMake `OUT` an associated type instead of a generic parameter
Joshua Nelson [Tue, 20 Sep 2022 01:57:37 +0000 (20:57 -0500)]
Make `OUT` an associated type instead of a generic parameter

This avoids toil when changing other functions in `ObligationForest` to take an `OUT` parameter.

21 months agoslightly cleanup building SelectionContext
Joshua Nelson [Mon, 19 Sep 2022 23:43:15 +0000 (18:43 -0500)]
slightly cleanup building SelectionContext

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 agoRemove use of `io::ErrorKind::Other` in std
Patiga [Tue, 20 Sep 2022 00:56:23 +0000 (02:56 +0200)]
Remove use of `io::ErrorKind::Other` in std

The documentation states that this `ErrorKind` is not used by the
standard library. Instead, `io::ErrorKind::Uncategorized` should be
used.

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 agoAuto merge of #2551 - RalfJung:rustup, r=RalfJung
bors [Mon, 19 Sep 2022 21:54:47 +0000 (21:54 +0000)]
Auto merge of #2551 - RalfJung:rustup, r=RalfJung

rustup

Cc https://github.com/rust-lang/rust/issues/101867

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 agoAdding needs-unwind to nicer-assert-messages compiler ui tests
Andrew Pollack [Mon, 19 Sep 2022 21:43:21 +0000 (21:43 +0000)]
Adding needs-unwind to nicer-assert-messages compiler ui tests

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 agogive macOS more time
Ralf Jung [Mon, 19 Sep 2022 20:57:26 +0000 (22:57 +0200)]
give macOS more time

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 agoDon't crate-locally reexport walk functions in tidy
est31 [Mon, 19 Sep 2022 20:33:09 +0000 (22:33 +0200)]
Don't crate-locally reexport walk functions in tidy

21 months agorustup
Ralf Jung [Mon, 19 Sep 2022 20:32:36 +0000 (22:32 +0200)]
rustup

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 agoAuto merge of #2547 - RalfJung:fake-apis, r=saethlin
bors [Mon, 19 Sep 2022 14:51:43 +0000 (14:51 +0000)]
Auto merge of #2547 - RalfJung:fake-apis, r=saethlin

note on deterministic 'fake' API implementations

Now that we also have fake clocks, it seems prudent to warn about this at the top of the readme.

r? `@rust-lang/miri`

21 months agoAuto merge of #9483 - c410-f3r:arith, r=Jarcho
bors [Mon, 19 Sep 2022 14:35:14 +0000 (14:35 +0000)]
Auto merge of #9483 - c410-f3r:arith, r=Jarcho

[arithmetic-side-effects] Finish non-overflowing ops

Extends https://github.com/rust-lang/rust-clippy/pull/9474 to also take into consideration "raw" binary operations. For example, `let a = b / 2` and `let a = 1 * b` won't trigger the lint.

changelog: [arithmetic-side-effects] Finish non-overflowing ops

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 matches! checking to nonstandard_macro_braces
Jonas Platte [Tue, 13 Sep 2022 10:08:17 +0000 (12:08 +0200)]
Add matches! checking to nonstandard_macro_braces

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 agonote on deterministic 'fake' API implementations
Ralf Jung [Sun, 18 Sep 2022 12:26:22 +0000 (14:26 +0200)]
note on deterministic 'fake' API implementations

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 agouse partition_point instead of binary_search when looking up source lines
The 8472 [Sun, 18 Sep 2022 22:25:44 +0000 (00:25 +0200)]
use partition_point instead of binary_search when looking up source lines

In local benchmarks this results in 0.4% fewer cycles in a critical sequential
section when compiling libcore.

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