]> git.lizzy.rs Git - rust.git/log
rust.git
19 months agoRollup merge of #104976 - WaffleLapkin:move_comments, r=cjgillot
Matthias Krüger [Sun, 27 Nov 2022 21:14:08 +0000 (22:14 +0100)]
Rollup merge of #104976 - WaffleLapkin:move_comments, r=cjgillot

Prefer doc comments over `//`-comments in compiler

Doc comments are generally nicer: they show up in the documentation, they are shown in IDEs when you hover other mentions of items, etc. Thus it makes sense to use them instead of `//`-comments.

19 months agoRollup merge of #104955 - GuillaumeGomez:migrate-to-func, r=notriddle
Matthias Krüger [Sun, 27 Nov 2022 21:14:08 +0000 (22:14 +0100)]
Rollup merge of #104955 - GuillaumeGomez:migrate-to-func, r=notriddle

Switch rustdoc-gui test to function call

r? `@notriddle`

19 months agoAuto merge of #104983 - matthiaskrgr:rollup-018sk73, r=matthiaskrgr
bors [Sun, 27 Nov 2022 17:10:58 +0000 (17:10 +0000)]
Auto merge of #104983 - matthiaskrgr:rollup-018sk73, r=matthiaskrgr

Rollup of 8 pull requests

Successful merges:

 - #95836 (Use `rust_out{exe_suffix}` for doctests)
 - #104882 (notify lcnr on changes to `ObligationCtxt`)
 - #104892 (Explain how to get the discriminant out of a `#[repr(T)] enum` with payload)
 - #104917 (Allow non-org members to label `requires-debug-assertions`)
 - #104931 (Pretty-print generators with their `generator_kind`)
 - #104934 (Remove redundant `all` in cfg)
 - #104944 (Support unit tests for jsondoclint)
 - #104946 (rustdoc: improve popover focus handling JS)

Failed merges:

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

19 months agoRollup merge of #104946 - notriddle:notriddle/popover-menu-focus, r=GuillaumeGomez
Matthias Krüger [Sun, 27 Nov 2022 15:03:09 +0000 (16:03 +0100)]
Rollup merge of #104946 - notriddle:notriddle/popover-menu-focus, r=GuillaumeGomez

rustdoc: improve popover focus handling JS

This commit fixes a few inconsistencies and erratic behavior from the notable traits, settings, and sidebar popups:

* It makes it so that pressing Escape closes the mobile sidebar. This is a bit difficult to do on iPhone, but on other setups like desktop tiling window managers, it's easy and makes sense.
* It makes sure that pressing escape while a notable trait popover is open focuses the popover's toggle button, instead of leaving nothing focused, since that makes more sense with keyboard navigation. Clicking the settings, help, or sidebar buttons, however, will not focus the notable trait popover toggle button.
* It ensures that notable trait and settings popovers are exclusive with the mobile sidebar. Nothing should ever overlap a popover, and there should never be more than one popover open at once.

19 months agoRollup merge of #104944 - aDotInTheVoid:jsondoclint-unit-tests, r=jyn514
Matthias Krüger [Sun, 27 Nov 2022 15:03:09 +0000 (16:03 +0100)]
Rollup merge of #104944 - aDotInTheVoid:jsondoclint-unit-tests, r=jyn514

Support unit tests for jsondoclint

r? ````@ghost````

19 months agoRollup merge of #104934 - ChrisDenton:all-anybody-wants, r=thomcc
Matthias Krüger [Sun, 27 Nov 2022 15:03:08 +0000 (16:03 +0100)]
Rollup merge of #104934 - ChrisDenton:all-anybody-wants, r=thomcc

Remove redundant `all` in cfg

This appears to have been accidentally left in after removing the other branches https://github.com/rust-lang/rust/commit/45bf1ed1a1123122ded05ae2eedaf0f190e52726

(hat tip to kangalioo for the git archaeology)

19 months agoRollup merge of #104931 - Swatinem:async-pretty, r=eholk
Matthias Krüger [Sun, 27 Nov 2022 15:03:08 +0000 (16:03 +0100)]
Rollup merge of #104931 - Swatinem:async-pretty, r=eholk

Pretty-print generators with their `generator_kind`

After removing `GenFuture`, I special-cased async generators to pretty-print as `impl Future<Output = X>` mainly to avoid too much diagnostics changes originally.

This now reverses that change so that async fn/blocks are pretty-printed as `[$async-type@$source-position]` in various diagnostics, and updates the tests that this touches.

19 months agoRollup merge of #104917 - compiler-errors:requires-debug-assertions, r=Mark-Simulacrum
Matthias Krüger [Sun, 27 Nov 2022 15:03:07 +0000 (16:03 +0100)]
Rollup merge of #104917 - compiler-errors:requires-debug-assertions, r=Mark-Simulacrum

Allow non-org members to label `requires-debug-assertions`

`jruderman` tried to add this in #104916, for example. I think I've seen this happen before as well.

19 months agoRollup merge of #104892 - lukas-code:discriminant, r=scottmcm
Matthias Krüger [Sun, 27 Nov 2022 15:03:07 +0000 (16:03 +0100)]
Rollup merge of #104892 - lukas-code:discriminant, r=scottmcm

Explain how to get the discriminant out of a `#[repr(T)] enum` with payload

example stolen from https://github.com/rust-lang/reference/pull/1055

````@rustbot```` label A-docs

19 months agoRollup merge of #104882 - lcnr:notify-ocx, r=Mark-Simulacrum
Matthias Krüger [Sun, 27 Nov 2022 15:03:06 +0000 (16:03 +0100)]
Rollup merge of #104882 - lcnr:notify-ocx, r=Mark-Simulacrum

notify lcnr on changes to `ObligationCtxt`

Right now the `ObligationCtxt` has an API which should prevent leaking any important details of the trait solver. This allows us to freely use it without having to worry about causing issues for the [trait solver rewrite](https://github.com/orgs/rust-lang/projects/26/views/1).

I would like to keep it this way ^^

19 months agoRollup merge of #95836 - workingjubilee:doctest-exe, r=notriddle
Matthias Krüger [Sun, 27 Nov 2022 15:03:06 +0000 (16:03 +0100)]
Rollup merge of #95836 - workingjubilee:doctest-exe, r=notriddle

Use `rust_out{exe_suffix}` for doctests

This was mentioned as an issue to me by ````@bruxisma.```` There are 3 separate instances where "rust_out" can become part of the name of a Rust executable, so I am mostly just hoping that this fixes the problem, given that the other sites which it can slip in seem to be well-behaved.

19 months agoAuto merge of #104048 - cjgillot:split-lifetime, r=compiler-errors
bors [Sun, 27 Nov 2022 14:30:19 +0000 (14:30 +0000)]
Auto merge of #104048 - cjgillot:split-lifetime, r=compiler-errors

Separate lifetime ident from lifetime resolution in HIR

Drive-by: change how suggested generic args are computed.
Fixes https://github.com/rust-lang/rust/issues/103815

I recommend reviewing commit-by-commit.

19 months agoPrefer doc comments over `//`-comments in compiler
Maybe Waffle [Sun, 27 Nov 2022 11:15:06 +0000 (11:15 +0000)]
Prefer doc comments over `//`-comments in compiler

19 months agoAuto merge of #103917 - oli-obk:layout_math, r=RalfJung,lcnr
bors [Sun, 27 Nov 2022 10:35:00 +0000 (10:35 +0000)]
Auto merge of #103917 - oli-obk:layout_math, r=RalfJung,lcnr

Various cleanups around scalar layout restrictions

Pulled out of https://github.com/rust-lang/rust/pull/103724

19 months agoAuto merge of #103786 - tshepang:obsolete, r=jyn514
bors [Sun, 27 Nov 2022 07:12:30 +0000 (07:12 +0000)]
Auto merge of #103786 - tshepang:obsolete, r=jyn514

Don't build `compiler_builtins` with `-C panic=abort`

19 months agoAuto merge of #96451 - JakobDegen:dest-prop, r=tmiasko
bors [Sun, 27 Nov 2022 04:09:53 +0000 (04:09 +0000)]
Auto merge of #96451 - JakobDegen:dest-prop, r=tmiasko

Fix Dest Prop

Closes #82678, #79191 .

This was not originally a total re-write of the pass but is has gradually turned into one. Notable changes:

 1. Significant improvements to documentation all around. The top of the file has been extended with a more precise argument for soundness. The code should be fairly readable, and I've done my best to add useful comments wherever possible. I would very much like for the bus factor to not be one on this code.
 3. Improved handling of conflicts that are not visible in normal dataflow.  This was the cause of #79191. Handling this correctly requires us to make decision about the semantics and specifically evaluation order of basically all MIR constructs (see specifically #68364 #71117.  The way this is implemented is based on my preferred resolution to these questions around the semantics of assignment statements.
 4. Some re-architecting to improve performance. More details below.
 5. Possible future improvements to this optimization are documented, and the code is written with the needs of those improvements in mind. The hope is that adding support for more precise analyses will not require a full re-write of this opt, but just localized changes.

### Regarding Performance

The previous approach had some performance issues; letting `l` be the number of locals and `s` be the number of statements/terminators, the runtime of the pass was `O(l^2 * s)`, both in theory and in practice. This version is smarter about not calculating unnecessary things and doing more caching. Our runtime is now dominated by one invocation of `MaybeLiveLocals` for each "round," and the number of rounds is less than 5 in over 90% of cases. This means it's linear-ish in practice.

r? `@oli-obk` who reviewed the last version of this, but review from anyone else would be more than welcome

19 months agoAttempt to solve problem with globs
Jubilee Young [Sun, 27 Nov 2022 02:47:52 +0000 (18:47 -0800)]
Attempt to solve problem with globs

19 months agoUse target exe_suffix for doctests
Jubilee Young [Sat, 9 Apr 2022 05:28:33 +0000 (22:28 -0700)]
Use target exe_suffix for doctests

This will use rust_out.exe for doctests on Windows,
rust_out.wasm for doctests in the wasm case, and
also handles cross-compiling or user-provided targets.

19 months agoRewrite dest prop.
Jakob Degen [Sun, 24 Apr 2022 21:34:24 +0000 (17:34 -0400)]
Rewrite dest prop.

This fixes a number of correctness issues from the previous version. Additionally, we use a new
strategy which has much better performance charactersitics and also finds more opportunities to
apply the optimization.

19 months agoAuto merge of #104818 - scottmcm:refactor-extend-func, r=the8472
bors [Sun, 27 Nov 2022 00:58:50 +0000 (00:58 +0000)]
Auto merge of #104818 - scottmcm:refactor-extend-func, r=the8472

Stop peeling the last iteration of the loop in `Vec::resize_with`

`resize_with` uses the `ExtendWith` code that peels the last iteration:
https://github.com/rust-lang/rust/blob/341d8b8a2c290b4535e965867e876b095461ff6e/library/alloc/src/vec/mod.rs#L2525-L2529

But that's kinda weird for `ExtendFunc` because it does the same thing on the last iteration anyway:
https://github.com/rust-lang/rust/blob/341d8b8a2c290b4535e965867e876b095461ff6e/library/alloc/src/vec/mod.rs#L2494-L2502

So this just has it use the normal `extend`-from-`TrustedLen` code instead.

r? `@ghost`

19 months agoAuto merge of #104950 - jyn514:revert-preview, r=Mark-Simulacrum
bors [Sat, 26 Nov 2022 21:47:17 +0000 (21:47 +0000)]
Auto merge of #104950 - jyn514:revert-preview, r=Mark-Simulacrum

Revert "Don't set `is_preview` for clippy and rustfmt"

This reverts commit fb3e724d7602675f147a9b80e70fb6bd6512738c, which broke `rustup update` for anyone with clippy or rustfmt installed.

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

r? `@Mark-Simulacrum`

`@bors` p=50 fixes nightly

19 months agoSwitch rustdoc-gui test to function call
Guillaume Gomez [Sat, 26 Nov 2022 21:35:05 +0000 (22:35 +0100)]
Switch rustdoc-gui test to function call

19 months agorustdoc: pass "true" to reset focus for notable traits
Michael Howell [Sat, 26 Nov 2022 21:32:57 +0000 (14:32 -0700)]
rustdoc: pass "true" to reset focus for notable traits

19 months agoRevert "Don't set `is_preview` for clippy and rustfmt"
Joshua Nelson [Sat, 26 Nov 2022 20:23:53 +0000 (15:23 -0500)]
Revert "Don't set `is_preview` for clippy and rustfmt"

This reverts commit fb3e724d7602675f147a9b80e70fb6bd6512738c, which broke `rustup update` for anyone with clippy or rustfmt installed.

19 months agoPretty-print generators with their `generator_kind`
Arpad Borsos [Fri, 25 Nov 2022 08:53:58 +0000 (09:53 +0100)]
Pretty-print generators with their `generator_kind`

After removing `GenFuture`, I special-cased async generators to pretty-print as `impl Future<Output = X>` mainly to avoid too much diagnostics changes originally.

This now reverses that change so that async fn/blocks are pretty-printed as `[$movability `async` $something@$source-position]` in various diagnostics, and updates the tests that this touches.

19 months agoAuto merge of #104945 - GuillaumeGomez:rollup-ygzbpbe, r=GuillaumeGomez
bors [Sat, 26 Nov 2022 17:58:12 +0000 (17:58 +0000)]
Auto merge of #104945 - GuillaumeGomez:rollup-ygzbpbe, r=GuillaumeGomez

Rollup of 7 pull requests

Successful merges:

 - #104786 (Use the power of adding helper function to simplify code w/ `Mutability`)
 - #104788 (Do not record unresolved const vars in generator interior)
 - #104909 (Rename `normalize_opaque_types` to `reveal_opaque_types_in_bounds`)
 - #104921 (Remove unnecessary binder from `get_impl_future_output_ty`)
 - #104924 (jsondoclint: Accept trait alias is places where trait expected.)
 - #104928 (rustdoc: use flexbox CSS to align sidebar button instead of position)
 - #104943 (jsondoclint: Handle using enum variants and glob using enums.)

Failed merges:

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

19 months agorustdoc: improve popover focus handling JS
Michael Howell [Sat, 26 Nov 2022 16:52:58 +0000 (09:52 -0700)]
rustdoc: improve popover focus handling JS

This commit fixes a few inconsistencies and erratic behavior from the
notable traits, settings, and sidebar popups:

* It makes it so that pressing Escape closes the mobile sidebar.
  This is a bit difficult to do on iPhone, but on other setups like
  desktop tiling window managers, it's easy and makes sense.
* It makes sure that pressing escape while a notable trait popover is
  open focuses the popover's toggle button, instead of leaving nothing
  focused, since that makes more sense with keyboard navigation. Clicking
  the settings, help, or sidebar buttons, however, will not focus the
  notable trait popover toggle button.
* It ensures that notable trait and settings popovers are exclusive
  with the mobile sidebar. Nothing should ever overlap a popover, and
  there should never be more than one popover open at once.

19 months agoRollup merge of #104943 - aDotInTheVoid:jsondoclint-use-enum, r=GuillaumeGomez
Guillaume Gomez [Sat, 26 Nov 2022 16:47:26 +0000 (17:47 +0100)]
Rollup merge of #104943 - aDotInTheVoid:jsondoclint-use-enum, r=GuillaumeGomez

jsondoclint: Handle using enum variants and glob using enums.

More work on jsondoclint for `core.json`

Closes #104942

r? `@GuillaumeGomez`

`@rustbot` modify labels: +A-testsuite

19 months agoRollup merge of #104928 - notriddle:notriddle/sidebar-toggle-flexbox, r=GuillaumeGomez
Guillaume Gomez [Sat, 26 Nov 2022 16:47:25 +0000 (17:47 +0100)]
Rollup merge of #104928 - notriddle:notriddle/sidebar-toggle-flexbox, r=GuillaumeGomez

rustdoc: use flexbox CSS to align sidebar button instead of position

This accomplishes the same thing with significantly less code.

Preview: https://notriddle.com/notriddle-rustdoc-demos/sidebar-toggle-flexbox/src/test_dingus/lib.rs.html

19 months agoRollup merge of #104924 - aDotInTheVoid:jsondocck-trait-alias, r=GuillaumeGomez
Guillaume Gomez [Sat, 26 Nov 2022 16:47:25 +0000 (17:47 +0100)]
Rollup merge of #104924 - aDotInTheVoid:jsondocck-trait-alias, r=GuillaumeGomez

jsondoclint: Accept trait alias is places where trait expected.

More work to make `jsondoclint` work for `core.json`

Closes #104923

r? `@GuillaumeGomez`

`@rustbot` modify labels: +A-testsuite

19 months agoRollup merge of #104921 - compiler-errors:no-binder-on-fut-ty, r=cjgillot
Guillaume Gomez [Sat, 26 Nov 2022 16:47:24 +0000 (17:47 +0100)]
Rollup merge of #104921 - compiler-errors:no-binder-on-fut-ty, r=cjgillot

Remove unnecessary binder from `get_impl_future_output_ty`

We never construct an `async fn` with a higher-ranked `impl Future` bound anyways, and basically all the call-sites already skip the binder.

19 months agoRollup merge of #104909 - compiler-errors:normalize_opaque_types-is-misleading, r...
Guillaume Gomez [Sat, 26 Nov 2022 16:47:24 +0000 (17:47 +0100)]
Rollup merge of #104909 - compiler-errors:normalize_opaque_types-is-misleading, r=fee1-dead

Rename `normalize_opaque_types` to `reveal_opaque_types_in_bounds`

1. The query name is a bit misleading, since it doesn't do any associated type normalization, and
2. since it only takes a predicate list, it sounds a bit more powerful than it actually is.

19 months agoRollup merge of #104788 - compiler-errors:unresolved-ct-in-gen, r=fee1-dead
Guillaume Gomez [Sat, 26 Nov 2022 16:47:23 +0000 (17:47 +0100)]
Rollup merge of #104788 - compiler-errors:unresolved-ct-in-gen, r=fee1-dead

Do not record unresolved const vars in generator interior

Don't record types in the generator interior when we see unresolved const variables.

We already do this for associated types -- this is important to avoid unresolved inference variables in the generator results during writeback, since the writeback results get stable hashed in incremental mode.

Fixes #104787

19 months agoRollup merge of #104786 - WaffleLapkin:amp-mut-help, r=compiler-errors
Guillaume Gomez [Sat, 26 Nov 2022 16:47:23 +0000 (17:47 +0100)]
Rollup merge of #104786 - WaffleLapkin:amp-mut-help, r=compiler-errors

Use the power of adding helper function to simplify code w/ `Mutability`

r? `@compiler-errors`

19 months agoAdd a test that makes sense
Nixon Enraght-Moony [Sat, 26 Nov 2022 16:24:43 +0000 (16:24 +0000)]
Add a test that makes sense

19 months agofix broken link fragment
Lukas Markeffsky [Sat, 26 Nov 2022 15:56:29 +0000 (16:56 +0100)]
fix broken link fragment

19 months agoSupport unit tests for jsondoclint
Nixon Enraght-Moony [Sat, 26 Nov 2022 15:32:49 +0000 (15:32 +0000)]
Support unit tests for jsondoclint

19 months agoexplain how to get the discriminant out of a `#[repr(T)] enum`
Lukas Markeffsky [Fri, 25 Nov 2022 15:13:52 +0000 (16:13 +0100)]
explain how to get the discriminant out of a `#[repr(T)] enum`

19 months agojsondoclint: Handle using enum variants and glob using enums.
Nixon Enraght-Moony [Sat, 26 Nov 2022 15:06:46 +0000 (15:06 +0000)]
jsondoclint: Handle using enum variants and glob using enums.

Closes #104942

19 months agoAuto merge of #104731 - compiler-errors:early-binder-iter-size-hint, r=cjgillot
bors [Sat, 26 Nov 2022 14:59:30 +0000 (14:59 +0000)]
Auto merge of #104731 - compiler-errors:early-binder-iter-size-hint, r=cjgillot

Add size hints to early binder iterator adapters

probably doesn't do anything, but definitely doesn't hurt

19 months agoAuto merge of #104935 - matthiaskrgr:rollup-nuca86l, r=matthiaskrgr
bors [Sat, 26 Nov 2022 12:11:32 +0000 (12:11 +0000)]
Auto merge of #104935 - matthiaskrgr:rollup-nuca86l, r=matthiaskrgr

Rollup of 6 pull requests

Successful merges:

 - #104121 (Refine `instruction_set` MIR inline rules)
 - #104675 (Unsupported query error now specifies if its unsupported for local or external crate)
 - #104839 (improve array_from_fn documenation)
 - #104880 ([llvm-wrapper] adapt for LLVM API change)
 - #104899 (rustdoc: remove no-op CSS `#help dt { display: block }`)
 - #104906 (Remove AscribeUserTypeCx)

Failed merges:

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

19 months agoRemove more redundant `all`s
Chris Denton [Sat, 26 Nov 2022 09:54:54 +0000 (09:54 +0000)]
Remove more redundant `all`s

19 months agoRollup merge of #104906 - spastorino:remove-ascribeusertypecx, r=compiler-errors
Matthias Krüger [Sat, 26 Nov 2022 09:39:12 +0000 (10:39 +0100)]
Rollup merge of #104906 - spastorino:remove-ascribeusertypecx, r=compiler-errors

Remove AscribeUserTypeCx

r? ``@compiler-errors``

This basically inlines `AscribeUserTypeCx::relate_mir_and_user_ty` into `type_op_ascribe_user_type_with_span` which is the only place where it's used and makes direct use of `ObligationCtxt` API.

19 months agoRollup merge of #104899 - notriddle:notriddle/help-dt, r=GuillaumeGomez
Matthias Krüger [Sat, 26 Nov 2022 09:39:12 +0000 (10:39 +0100)]
Rollup merge of #104899 - notriddle:notriddle/help-dt, r=GuillaumeGomez

rustdoc: remove no-op CSS `#help dt { display: block }`

`display: block` is the [default UA style] for dt.

[default UA style]: https://html.spec.whatwg.org/multipage/rendering.html#lists

19 months agoRollup merge of #104880 - krasimirgg:llvm-16-ctx, r=cuviper
Matthias Krüger [Sat, 26 Nov 2022 09:39:11 +0000 (10:39 +0100)]
Rollup merge of #104880 - krasimirgg:llvm-16-ctx, r=cuviper

[llvm-wrapper] adapt for LLVM API change

Adapt for the LLVM API changes from https://github.com/llvm/llvm-project/commit/721f975d3518403502f770ce11f3f02509b30c5b.

Found via our experimental rust + llvm @ HEAD bot: https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/15203#0184ae73-5169-4b9b-92f4-d4e6e9b86ad9/194-531

19 months agoRollup merge of #104839 - HintringerFabian:docs_array_from_fn, r=scottmcm
Matthias Krüger [Sat, 26 Nov 2022 09:39:11 +0000 (10:39 +0100)]
Rollup merge of #104839 - HintringerFabian:docs_array_from_fn, r=scottmcm

improve array_from_fn documenation

Improves array::from_fn documentation
Fixes #102609

There were also unresolved comments from [this PR #100462](https://github.com/rust-lang/rust/pull/100462), which have been added to my PR

19 months agoRollup merge of #104675 - SarthakSingh31:issue-101666, r=jyn514
Matthias Krüger [Sat, 26 Nov 2022 09:39:10 +0000 (10:39 +0100)]
Rollup merge of #104675 - SarthakSingh31:issue-101666, r=jyn514

Unsupported query error now specifies if its unsupported for local or external crate

Fixes #101666.
I had to move `keys.rs` from `rustc_query_impl` to `rustc_middle`. I don't know if that is problematic. I couldn't think of any other way to get the needed information inside `rustc_middle`.

r? ```@jyn514```

19 months agoRollup merge of #104121 - Lokathor:mir-opt-when-instruction-set-missing-on-callee...
Matthias Krüger [Sat, 26 Nov 2022 09:39:10 +0000 (10:39 +0100)]
Rollup merge of #104121 - Lokathor:mir-opt-when-instruction-set-missing-on-callee, r=tmiasko

Refine `instruction_set` MIR inline rules

Previously an exact match of the `instruction_set` attribute was required for an MIR inline to be considered. This change checks for an exact match *only* if the callee sets an `instruction_set` in the first place. When the callee does not declare an instruction set then it is considered to be platform agnostic code and it's allowed to be inline'd into the caller.

cc ``@oli-obk``

[Edit] Zulip Context: https://rust-lang.zulipchat.com/#narrow/stream/189540-t-compiler.2Fwg-mir-opt/topic/What.20exactly.20does.20the.20MIR.20optimizer.20do.3F

19 months agoRemove redundant `all` in cfg
Chris Denton [Sat, 26 Nov 2022 09:31:40 +0000 (09:31 +0000)]
Remove redundant `all` in cfg

19 months agoAuto merge of #103556 - clubby789:specialize-option-partial-eq, r=scottmcm
bors [Sat, 26 Nov 2022 08:56:20 +0000 (08:56 +0000)]
Auto merge of #103556 - clubby789:specialize-option-partial-eq, r=scottmcm

Manually implement PartialEq for Option<T> and specialize non-nullable types

This PR manually implements `PartialEq` and `StructuralPartialEq` for `Option`, which seems to produce slightly better codegen than the automatically derived implementation.

It also allows specializing on the `core::num::NonZero*` and `core::ptr::NonNull` types, taking advantage of the niche optimization by transmuting the `Option<T>` to `T` to be compared directly, which can be done in just two instructions.

A comparison of the original, new and specialized code generation is available [here](https://godbolt.org/z/dE4jxdYsa).

19 months agoAuto merge of #104730 - petrochenkov:modchild5, r=cjgillot
bors [Sat, 26 Nov 2022 05:41:34 +0000 (05:41 +0000)]
Auto merge of #104730 - petrochenkov:modchild5, r=cjgillot

rustc_metadata: Switch module children decoding to an iterator

Previously https://github.com/rust-lang/rust/pull/103578, https://github.com/rust-lang/rust/pull/103524 and previous PRs simplified it as much as possible.

A couple of cleanup commits is also added.
r? `@cjgillot`

19 months agoDo not record unresolved const vars in generator interior
Michael Goulet [Wed, 23 Nov 2022 19:38:22 +0000 (19:38 +0000)]
Do not record unresolved const vars in generator interior

19 months agoRemove unnecessary binder from get_impl_future_output_ty
Michael Goulet [Sat, 26 Nov 2022 00:46:09 +0000 (00:46 +0000)]
Remove unnecessary binder from get_impl_future_output_ty

19 months agorustdoc: use flexbox CSS to align sidebar button instead of position
Michael Howell [Sat, 26 Nov 2022 05:06:22 +0000 (22:06 -0700)]
rustdoc: use flexbox CSS to align sidebar button instead of position

This accomplishes the same thing with significantly less code.

19 months agoAuto merge of #104431 - alistair23:alistair/rv64-profiler, r=Mark-Simulacrum
bors [Sat, 26 Nov 2022 02:43:08 +0000 (02:43 +0000)]
Auto merge of #104431 - alistair23:alistair/rv64-profiler, r=Mark-Simulacrum

Enable profiler in dist-riscv64-linux

Build the profiler runtime to allow using -C profile-generate and -C instrument-coverage on riscv64-linux.

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
19 months agojsondoclint: Accept trait alias is places where trait expected.
Nixon Enraght-Moony [Sat, 26 Nov 2022 01:40:08 +0000 (01:40 +0000)]
jsondoclint: Accept trait alias is places where trait expected.

Closes #104923

19 months agoAllow non-org members to label `requires-debug-assertions`
Michael Goulet [Sat, 26 Nov 2022 00:06:52 +0000 (16:06 -0800)]
Allow non-org members to label `requires-debug-assertions`

jruderman tried to add this in #104916, for example. I think I've seen this happen before as well.

19 months agoAuto merge of #99798 - JulianKnodt:ac1, r=BoxyUwU
bors [Fri, 25 Nov 2022 22:56:59 +0000 (22:56 +0000)]
Auto merge of #99798 - JulianKnodt:ac1, r=BoxyUwU

Add `ConstKind::Expr`

Starting to implement `ty::ConstKind::Abstract`, most of the match cases are stubbed out, some I was unsure what to add, others I didn't want to add until a more complete implementation was ready.

r? `@lcnr`

19 months agoRefine instruction_set inline rules
Lokathor [Mon, 7 Nov 2022 19:07:07 +0000 (12:07 -0700)]
Refine instruction_set inline rules

Previously an exact match of the `instruction_set` attribute was required for an MIR inline to be considered. This change checks for an exact match *only* if the callee sets an `instruction_set` in the first place. When the callee does not declare an instruction set then it is considered to be platform agnostic code and it's allowed to be inline'd into the caller.

19 months agoRename normalize_opaque_types to reveal_opaque_types_in_bounds
Michael Goulet [Fri, 25 Nov 2022 19:30:37 +0000 (19:30 +0000)]
Rename normalize_opaque_types to reveal_opaque_types_in_bounds

19 months agoAuto merge of #104902 - matthiaskrgr:rollup-oo27a4u, r=matthiaskrgr
bors [Fri, 25 Nov 2022 19:09:30 +0000 (19:09 +0000)]
Auto merge of #104902 - matthiaskrgr:rollup-oo27a4u, r=matthiaskrgr

Rollup of 8 pull requests

Successful merges:

 - #104716 (move 2 candidates into builtin candidate)
 - #104760 (Clarify `SyntaxExtensionKind::LegacyDerive`.)
 - #104797 (rustc_codegen_ssa: write `.dwp` in a streaming fashion)
 - #104835 (Use infcx.partially_normalize_associated_types_in)
 - #104853 (Fix typo in miri sysroot)
 - #104879 (jsondoclint: Recognise Typedef as valid kind for Type::ResolvedPath)
 - #104887 (rustbuild: Don't build doc::SharedAssets when building JSON docs.)
 - #104896 (rustdoc: fix broken tooltip CSS)

Failed merges:

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

19 months agoDefine all clauses as dummy_with_span as the usages are all equivalent
Santiago Pastorino [Fri, 25 Nov 2022 18:36:15 +0000 (15:36 -0300)]
Define all clauses as dummy_with_span as the usages are all equivalent

19 months agoRemove AscribeUserTypeCx
Santiago Pastorino [Fri, 25 Nov 2022 18:07:19 +0000 (15:07 -0300)]
Remove AscribeUserTypeCx

19 months agoRollup merge of #104896 - notriddle:notriddle/tooltip, r=GuillaumeGomez
Matthias Krüger [Fri, 25 Nov 2022 17:35:42 +0000 (18:35 +0100)]
Rollup merge of #104896 - notriddle:notriddle/tooltip, r=GuillaumeGomez

rustdoc: fix broken tooltip CSS

text `#ffffff` on background `#fdffd3` fails the [WCAG color contrast checker], and seems like a mistake in https://github.com/rust-lang/rust/commit/16b55903ee16503e7026677c169727d1907704c2.

Making the cursor a pointer is misleading, since clicking it doesn't do anything.

[WCAG color contrast checker]: https://accessibleweb.com/color-contrast-checker/

19 months agoRollup merge of #104887 - aDotInTheVoid:rustbuild-json-doc-shared-assets, r=jyn514
Matthias Krüger [Fri, 25 Nov 2022 17:35:42 +0000 (18:35 +0100)]
Rollup merge of #104887 - aDotInTheVoid:rustbuild-json-doc-shared-assets, r=jyn514

rustbuild: Don't build doc::SharedAssets when building JSON docs.

Previously, running `./x doc library/core/ --json` on a plain build would panic bootstrap.

```
$ ./x doc library/core/ --json
Building rustbuild
    Blocking waiting for file lock on package cache
   Compiling bootstrap v0.0.0 (/home/nixon/dev/rust/rust/src/bootstrap)
    Finished dev [unoptimized] target(s) in 4.47s
thread 'main' panicked at 'fs::write(&version_info, &info) failed with No such file or directory (os error 2) ("/home/nixon/dev/rust/rust/build/x86_64-unknown-linux-gnu/doc/version_info.html")', doc.rs:410:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Build completed unsuccessfully in 0:00:04
```

Becuase the `SharedAssets` step assumes that the HTML out dir has been created. This isn't true for JSON.

The fix is to not build shared assets when doing a JSON doc build, as it doesn't need them.

r? ``@jyn514``

``@rustbot`` modify labels: +A-rustdoc-json

19 months agoRollup merge of #104879 - aDotInTheVoid:jsondoclint-typedef, r=GuillaumeGomez
Matthias Krüger [Fri, 25 Nov 2022 17:35:42 +0000 (18:35 +0100)]
Rollup merge of #104879 - aDotInTheVoid:jsondoclint-typedef, r=GuillaumeGomez

jsondoclint: Recognise Typedef as valid kind for Type::ResolvedPath

Closes #104851

r? ``@GuillaumeGomez``

``@rustbot`` modify labels: +A-testsuite

19 months agoRollup merge of #104853 - jyn514:sysroot-typo, r=RalfJung
Matthias Krüger [Fri, 25 Nov 2022 17:35:41 +0000 (18:35 +0100)]
Rollup merge of #104853 - jyn514:sysroot-typo, r=RalfJung

Fix typo in miri sysroot

r? ``@RalfJung``

19 months agoRollup merge of #104835 - spastorino:use-partially_normalize_associated_types_in...
Matthias Krüger [Fri, 25 Nov 2022 17:35:41 +0000 (18:35 +0100)]
Rollup merge of #104835 - spastorino:use-partially_normalize_associated_types_in, r=lcnr

Use infcx.partially_normalize_associated_types_in

r? ``@lcnr``

19 months agoRollup merge of #104797 - weihanglo:stream-write-dwp, r=jackh726
Matthias Krüger [Fri, 25 Nov 2022 17:35:40 +0000 (18:35 +0100)]
Rollup merge of #104797 - weihanglo:stream-write-dwp, r=jackh726

rustc_codegen_ssa: write `.dwp` in a streaming fashion

When writing a `.dwp` file, rustc writes to a Vec first then to a BufWriter-wrapped file. It seems very likely that we can write in a streaming fashion to avoid double buffering in an intermediate Vec.

On my Linux machine, `.dwp` from the latest rust-lang/cargo is 113MiB. It may worth a stream writer, though I didn't do any benchmark 🙇🏾‍♂️.

19 months agoRollup merge of #104760 - nnethercote:rm-LegacyDerive, r=petrochenkov
Matthias Krüger [Fri, 25 Nov 2022 17:35:39 +0000 (18:35 +0100)]
Rollup merge of #104760 - nnethercote:rm-LegacyDerive, r=petrochenkov

Clarify `SyntaxExtensionKind::LegacyDerive`.

It's always treated the same as `SyntaxExtensionKind::Derive`.

19 months agoRollup merge of #104716 - lcnr:selection-candidate, r=jackh726
Matthias Krüger [Fri, 25 Nov 2022 17:35:39 +0000 (18:35 +0100)]
Rollup merge of #104716 - lcnr:selection-candidate, r=jackh726

move 2 candidates into builtin candidate

having separate candidates for these isn't too helpful i think

r? types

19 months agorustdoc: remove no-op CSS `#help dt { display: block }`
Michael Howell [Fri, 25 Nov 2022 17:07:21 +0000 (10:07 -0700)]
rustdoc: remove no-op CSS `#help dt { display: block }`

`display: block` is the [default UA style] for dt.

[default UA style]: https://html.spec.whatwg.org/multipage/rendering.html#lists

19 months agorustdoc: revert tooltip background color on light theme to readable
Michael Howell [Fri, 25 Nov 2022 16:17:58 +0000 (09:17 -0700)]
rustdoc: revert tooltip background color on light theme to readable

text #fff on background #fdffd3 fails the [WCAG color contrast checker], and
seems like a mistake in 16b55903ee16503e7026677c169727d1907704c2.

[WCAG color contrast checker]: https://accessibleweb.com/color-contrast-checker/

19 months agorustdoc: remove `cursor: pointer` from unclickable tooltip
Michael Howell [Fri, 25 Nov 2022 16:16:27 +0000 (09:16 -0700)]
rustdoc: remove `cursor: pointer` from unclickable tooltip

It's misleading unless it gets changed to respond to being clicked.

19 months agoAuto merge of #104846 - spastorino:santa-clauses-make-goals-early-christmas-🎄, r...
bors [Fri, 25 Nov 2022 15:59:31 +0000 (15:59 +0000)]
Auto merge of #104846 - spastorino:santa-clauses-make-goals-early-christmas-🎄, r=oli-obk

Branch Clause from Predicate

r? `@oli-obk`

This is part of what's proposed in https://github.com/rust-lang/compiler-team/issues/531

19 months agoremove unused code
Tshepang Mbambo [Fri, 25 Nov 2022 14:28:18 +0000 (16:28 +0200)]
remove unused code

19 months agoremove obsolete comment
Tshepang Mbambo [Mon, 31 Oct 2022 02:23:46 +0000 (04:23 +0200)]
remove obsolete comment

19 months agorustbuild: Don't build doc::SharedAssets when building JSON docs.
Nixon Enraght-Moony [Fri, 25 Nov 2022 13:50:41 +0000 (13:50 +0000)]
rustbuild: Don't build doc::SharedAssets when building JSON docs.

19 months agonotify lcnr on changes to `ObligationCtxt`
lcnr [Fri, 25 Nov 2022 13:26:10 +0000 (14:26 +0100)]
notify lcnr on changes to `ObligationCtxt`

19 months agoAuto merge of #104877 - matthiaskrgr:rollup-s7taiq8, r=matthiaskrgr
bors [Fri, 25 Nov 2022 13:01:45 +0000 (13:01 +0000)]
Auto merge of #104877 - matthiaskrgr:rollup-s7taiq8, r=matthiaskrgr

Rollup of 6 pull requests

Successful merges:

 - #103648 (Don't set `is_preview` for clippy and rustfmt)
 - #104654 (Add `#![deny(unsafe_op_in_unsafe_fn)]` in liballoc tests)
 - #104793 (unstable-book: Add page for the `abi_efiapi` feature)
 - #104841 (Assert that we don't capture escaping bound vars in `Fn` trait selection)
 - #104849 (Migrate source code elements style to CSS variables)
 - #104873 (RefCell::get_mut: fix typo)

Failed merges:

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

19 months ago[llvm-wrapper] adapt for LLVM API change
Krasimir Georgiev [Fri, 25 Nov 2022 11:29:00 +0000 (11:29 +0000)]
[llvm-wrapper] adapt for LLVM API change

Adapt for the LLVM API changes from
https://github.com/llvm/llvm-project/commit/721f975d3518403502f770ce11f3f02509b30c5b#diff-5a347903b8412ed1b1b1948c3fce47f9a6ff05dc70bfaeedb6d06b622e399d91.

19 months agoadd comment
lcnr [Wed, 23 Nov 2022 16:39:51 +0000 (17:39 +0100)]
add comment

19 months agomove 2 candidates into builtin candidate
lcnr [Tue, 22 Nov 2022 14:46:01 +0000 (15:46 +0100)]
move 2 candidates into builtin candidate

19 months agojsondoclint: Recognise Typedef as valid kind for Type::ResolvedPath
Nixon Enraght-Moony [Fri, 25 Nov 2022 10:53:14 +0000 (10:53 +0000)]
jsondoclint: Recognise Typedef as valid kind for Type::ResolvedPath

Closes #104851

19 months agoRollup merge of #104873 - RalfJung:therefore, r=Dylan-DPC
Matthias Krüger [Fri, 25 Nov 2022 09:44:40 +0000 (10:44 +0100)]
Rollup merge of #104873 - RalfJung:therefore, r=Dylan-DPC

RefCell::get_mut: fix typo

and fix the same typo in a bunch of other places

19 months agoRollup merge of #104849 - GuillaumeGomez:source-code-sidebar-css-migration, r=notriddle
Matthias Krüger [Fri, 25 Nov 2022 09:44:40 +0000 (10:44 +0100)]
Rollup merge of #104849 - GuillaumeGomez:source-code-sidebar-css-migration, r=notriddle

Migrate source code elements style to CSS variables

r? ``@notriddle``

19 months agoRollup merge of #104841 - compiler-errors:fishy-bound-var, r=jackh726
Matthias Krüger [Fri, 25 Nov 2022 09:44:39 +0000 (10:44 +0100)]
Rollup merge of #104841 - compiler-errors:fishy-bound-var, r=jackh726

Assert that we don't capture escaping bound vars in `Fn` trait selection

Fixes #104825

19 months agoRollup merge of #104793 - nicholasbishop:bishop-add-efiapi, r=JohnTitor
Matthias Krüger [Fri, 25 Nov 2022 09:44:39 +0000 (10:44 +0100)]
Rollup merge of #104793 - nicholasbishop:bishop-add-efiapi, r=JohnTitor

unstable-book: Add page for the `abi_efiapi` feature

Tracking issue for `abi_efiapi`: https://github.com/rust-lang/rust/issues/65815

19 months agoRollup merge of #104654 - thomcc:alloc-tests-unsafe_op_in_unsafe_fn, r=Mark-Simulacrum
Matthias Krüger [Fri, 25 Nov 2022 09:44:38 +0000 (10:44 +0100)]
Rollup merge of #104654 - thomcc:alloc-tests-unsafe_op_in_unsafe_fn, r=Mark-Simulacrum

Add `#![deny(unsafe_op_in_unsafe_fn)]` in liballoc tests

In https://github.com/rust-lang/rust/pull/104647#discussion_r1027332930 it was mentioned that liballoc tests should probably have this enabled (we have it pretty much everywhere else in the stdlib), so I added it.

This will probably conflict with https://github.com/rust-lang/rust/pull/104647 so I'll rebase after that lands.

19 months agoRollup merge of #103648 - jyn514:no-preview, r=Mark-Simulacrum
Matthias Krüger [Fri, 25 Nov 2022 09:44:37 +0000 (10:44 +0100)]
Rollup merge of #103648 - jyn514:no-preview, r=Mark-Simulacrum

Don't set `is_preview` for clippy and rustfmt

These have been shipped on stable for many years now and it would be very disruptive to ever remove them.
Remove the `-preview` suffix from their dist components.

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

19 months agoAuto merge of #104650 - BlackHoleFox:stuck-with-xcode-13, r=Mark-Simulacrum
bors [Fri, 25 Nov 2022 09:44:16 +0000 (09:44 +0000)]
Auto merge of #104650 - BlackHoleFox:stuck-with-xcode-13, r=Mark-Simulacrum

Build macOS distribution artifacts with XCode 13

After all of the `rust-lang/rust` Apple runners started using macOS 12, the builds created by CI began to use XCode 14.0.1. Due to this (as far as we can tell), XCode's build tools started to ignore the `MACOSX_DEPLOYMENT_TARGET` being defined by us for the distributed builds that let both `rustc` and `libstd` work on older versions. The current idea is that since XCode 14's macOS SDK doesn't support deployment targets before 10.13, it uses some default of its own. You can see the difference between stable's and the most recent nighty's supported versions [here](https://github.com/rust-lang/rust/issues/104570#issuecomment-1321225907).

I wasn't able to confirm my SDK versioning hypothesis locally since I think there's something jammed with my XCode installation, but hopefully this should still fix it for releases.

Closes https://github.com/rust-lang/rust/issues/104570

r? `@Mark-Simulacrum`

19 months agoFix mk_const_list
kadmin [Fri, 25 Nov 2022 09:35:37 +0000 (09:35 +0000)]
Fix mk_const_list

19 months agoonly emit "enable gce" error if it would fix compile error
Boxy [Thu, 24 Nov 2022 11:25:19 +0000 (11:25 +0000)]
only emit "enable gce" error if it would fix compile error

19 months agoMake `expand_abstract_consts` infallible
Boxy [Thu, 24 Nov 2022 11:09:15 +0000 (11:09 +0000)]
Make `expand_abstract_consts` infallible

19 months ago`super_relate_consts` do not spurriously fail on assoc consts
Boxy [Thu, 24 Nov 2022 08:36:28 +0000 (08:36 +0000)]
`super_relate_consts` do not spurriously fail on assoc consts

19 months agoadd FIXME's
Boxy [Thu, 24 Nov 2022 08:20:51 +0000 (08:20 +0000)]
add FIXME's

19 months agocorrectly intern `List<Const<'tcx>>`
Boxy [Wed, 23 Nov 2022 09:25:01 +0000 (09:25 +0000)]
correctly intern `List<Const<'tcx>>`

19 months agodont skip const evalautable of non unevaluateds
Boxy [Tue, 22 Nov 2022 12:22:36 +0000 (12:22 +0000)]
dont skip const evalautable of non unevaluateds

19 months agoadd FIXME for things that I couldn't find ways to trigger
Boxy [Tue, 22 Nov 2022 12:20:05 +0000 (12:20 +0000)]
add FIXME for things that I couldn't find ways to trigger

19 months agofmt
Boxy [Mon, 21 Nov 2022 04:32:07 +0000 (04:32 +0000)]
fmt