]> git.lizzy.rs Git - rust.git/log
rust.git
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 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 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 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 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 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 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 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 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

19 months agoreduce duplicated argument logic
Boxy [Tue, 15 Nov 2022 23:23:31 +0000 (23:23 +0000)]
reduce duplicated argument logic

19 months agoalso handle it in evaluate
Boxy [Tue, 15 Nov 2022 23:11:30 +0000 (23:11 +0000)]
also handle it in evaluate

19 months agohandle assoc consts in fulfill `ConstEquate`
Boxy [Tue, 15 Nov 2022 22:53:30 +0000 (22:53 +0000)]
handle assoc consts in fulfill `ConstEquate`

19 months agofmt
Boxy [Tue, 15 Nov 2022 20:45:57 +0000 (20:45 +0000)]
fmt

19 months agohandle nested obligations in `satisfied_from_param_env`
Boxy [Mon, 14 Nov 2022 18:20:53 +0000 (18:20 +0000)]
handle nested obligations in `satisfied_from_param_env`

19 months agoAdd expand_abstract_const
kadmin [Tue, 25 Oct 2022 08:16:43 +0000 (08:16 +0000)]
Add expand_abstract_const

Adds the ability to directly expand a const to an expr without having to deal with intermediate
steps.

19 months agoAdd empty ConstKind::Abstract
kadmin [Wed, 27 Jul 2022 07:27:52 +0000 (07:27 +0000)]
Add empty ConstKind::Abstract

Initial pass at expr/abstract const/s

Address comments

Switch to using a list instead of &[ty::Const], rm `AbstractConst`

Remove try_unify_abstract_consts

Update comments

Add edits

Recurse more

More edits

Prevent equating associated consts

Move failing test to ui

Changes this test from incremental to ui, and mark it as failing and a known bug.
Does not cause the compiler to ICE, so should be ok.

19 months agochange example of array_from_fn to match suggestion
Fabian Hintringer [Fri, 25 Nov 2022 09:05:07 +0000 (10:05 +0100)]
change example of array_from_fn to match suggestion

19 months agoRefCell::get_mut: fix typo
Ralf Jung [Fri, 25 Nov 2022 07:47:59 +0000 (08:47 +0100)]
RefCell::get_mut: fix typo

and fix the same typo in a bunch of other places

19 months agoAuto merge of #104602 - petrochenkov:effvisperf5, r=oli-obk
bors [Fri, 25 Nov 2022 06:14:42 +0000 (06:14 +0000)]
Auto merge of #104602 - petrochenkov:effvisperf5, r=oli-obk

privacy: Fix more (potential) issues with effective visibilities

Continuation of https://github.com/rust-lang/rust/pull/103965.
See individual commits for more detailed description of the changes.

The shortcuts removed in https://github.com/rust-lang/rust/pull/104602/commits/4eb63f618e601efee657d24cd4e8833fb03fac4c and https://github.com/rust-lang/rust/pull/104602/commits/c7c7d1672739e38c8d39ae861b284486aefd5b48 could actually be correct (or correct after some tweaks), but they used global reasoning like "we can skip this update because if the code compiles then some other update should do the same thing eventually".
I have some expertise in this area, but I still have doubt whether such global reasoning was correct or not, especially in presence of all possible exotic cases with imports.
After this PR all table changes should be "locally correct" after every update, even if it may be overcautious.
If similar optimizations are introduced again they will need detailed comments explaining why it's legal to do what they do and providing proofs.

Fixes https://github.com/rust-lang/rust/issues/104249.
Fixes https://github.com/rust-lang/rust/issues/104539.

19 months agoAuto merge of #104855 - thomcc:revert-noinline-wintls, r=ChrisDenton
bors [Fri, 25 Nov 2022 03:17:25 +0000 (03:17 +0000)]
Auto merge of #104855 - thomcc:revert-noinline-wintls, r=ChrisDenton

Revert "Forbid inlining `thread_local!`'s `__getit` function on Windows"

Revert of #101368, fixes #104852.

I'd rather not do this since that's a soundness fix and this is hitting some compiler bug, but I don't really know an alternative.

r? `@ChrisDenton`

19 months agoIntroduce PredicateKind::Clause
Santiago Pastorino [Thu, 24 Nov 2022 21:14:58 +0000 (18:14 -0300)]
Introduce PredicateKind::Clause

19 months agoSimplify a bunch of trait ref obligation creations
Oli Scherer [Fri, 18 Nov 2022 21:29:26 +0000 (21:29 +0000)]
Simplify a bunch of trait ref obligation creations

19 months agoget rid of to_poly_trait_predicate
Oli Scherer [Fri, 18 Nov 2022 14:10:36 +0000 (14:10 +0000)]
get rid of to_poly_trait_predicate

19 months agoRevert "Forbid inlining `thread_local!`'s `__getit` function on Windows"
Thom Chiovoloni [Fri, 25 Nov 2022 02:12:12 +0000 (18:12 -0800)]
Revert "Forbid inlining `thread_local!`'s `__getit` function on Windows"

This reverts commit 3099dfdd9fc1a331eb9c53200b310fa1a06e1573.

19 months agoFix typo in miri sysroot
Joshua Nelson [Fri, 25 Nov 2022 01:28:55 +0000 (20:28 -0500)]
Fix typo in miri sysroot

19 months agoDon't set `is_preview` for clippy and rustfmt
Joshua Nelson [Thu, 27 Oct 2022 18:00:55 +0000 (13:00 -0500)]
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.

19 months agoAuto merge of #104845 - matthiaskrgr:rollup-tckj956, r=matthiaskrgr
bors [Thu, 24 Nov 2022 23:45:32 +0000 (23:45 +0000)]
Auto merge of #104845 - matthiaskrgr:rollup-tckj956, r=matthiaskrgr

Rollup of 11 pull requests

Successful merges:

 - #104514 (Use node_ty_opt to avoid ICE in visit_ty)
 - #104704 (Allow power10-vector feature in PowerPC)
 - #104747 (resolve: Don't use constructor def ids in the map for field names)
 - #104773 (OpaqueCast projections are always overlapping, they can't possibly be disjoint)
 - #104774 (Document split{_ascii,}_whitespace() for empty strings)
 - #104780 (make `error_reported` check for delayed bugs)
 - #104782 (Bump the const eval step limit)
 - #104792 (rustdoc: simplify `.search-results-title` CSS)
 - #104796 (lint: do not warn unused parens around higher-ranked function pointers)
 - #104820 (Remove normalize_projection_type)
 - #104822 (with_query_mode -> new)

Failed merges:

 - #104716 (move 2 candidates into builtin candidate)
 - #104841 (Assert that we don't capture escaping bound vars in `Fn` trait selection)

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

19 months agoStrenghten GUI test to include extra state in selector
Guillaume Gomez [Thu, 24 Nov 2022 22:39:49 +0000 (23:39 +0100)]
Strenghten GUI test to include extra state in selector

19 months agoExtend GUI test to include more source code elements checks
Guillaume Gomez [Thu, 24 Nov 2022 22:36:41 +0000 (23:36 +0100)]
Extend GUI test to include more source code elements checks

19 months agoMigrate source code elements style to CSS variables
Guillaume Gomez [Thu, 24 Nov 2022 22:36:26 +0000 (23:36 +0100)]
Migrate source code elements style to CSS variables

19 months agoClarify `SyntaxExtensionKind::LegacyDerive`.
Nicholas Nethercote [Wed, 23 Nov 2022 04:31:02 +0000 (15:31 +1100)]
Clarify `SyntaxExtensionKind::LegacyDerive`.

19 months agoRemove comment, simplify since we asserted fn ptr Self type has no bound vars
Michael Goulet [Thu, 24 Nov 2022 19:55:47 +0000 (19:55 +0000)]
Remove comment, simplify since we asserted fn ptr Self type has no bound vars

19 months agoAlso check that fn pointer candidates don't have escaping bound vars
Michael Goulet [Thu, 24 Nov 2022 19:37:03 +0000 (19:37 +0000)]
Also check that fn pointer candidates don't have escaping bound vars

19 months agoAssert that we don't capture escaping bound vars in Fn trait selection
Michael Goulet [Thu, 24 Nov 2022 18:45:02 +0000 (18:45 +0000)]
Assert that we don't capture escaping bound vars in Fn trait selection

19 months agoRollup merge of #104822 - spastorino:selctx-new-instead-of-with_query_mode, r=lcnr
Matthias Krüger [Thu, 24 Nov 2022 20:34:57 +0000 (21:34 +0100)]
Rollup merge of #104822 - spastorino:selctx-new-instead-of-with_query_mode, r=lcnr

with_query_mode -> new

r? ```@lcnr```

19 months agoRollup merge of #104820 - spastorino:remove-normalize_projection_type, r=jackh726
Matthias Krüger [Thu, 24 Nov 2022 20:34:56 +0000 (21:34 +0100)]
Rollup merge of #104820 - spastorino:remove-normalize_projection_type, r=jackh726

Remove normalize_projection_type

r? ``@lcnr``

19 months agoRollup merge of #104796 - notriddle:notriddle/unused-issue-104397, r=oli-obk
Matthias Krüger [Thu, 24 Nov 2022 20:34:56 +0000 (21:34 +0100)]
Rollup merge of #104796 - notriddle:notriddle/unused-issue-104397, r=oli-obk

lint: do not warn unused parens around higher-ranked function pointers

Fixes #104397

19 months agoRollup merge of #104792 - notriddle:notriddle/crate-search-title-display, r=Guillaume...
Matthias Krüger [Thu, 24 Nov 2022 20:34:55 +0000 (21:34 +0100)]
Rollup merge of #104792 - notriddle:notriddle/crate-search-title-display, r=GuillaumeGomez

rustdoc: simplify `.search-results-title` CSS

By using `display: flex`, we still get the never-wrapping layout with `#crate-search-div` maxing out and truncating its text. The title itself winds up always filling its parent, but since `#crate-search` doesn't have `flex-grow` set, it won't fill available space.

19 months agoRollup merge of #104782 - oli-obk:const_eval_limit_bump, r=pnkfelix
Matthias Krüger [Thu, 24 Nov 2022 20:34:55 +0000 (21:34 +0100)]
Rollup merge of #104782 - oli-obk:const_eval_limit_bump, r=pnkfelix

Bump the const eval step limit

fixes https://github.com/rust-lang/rust/issues/103814

https://github.com/rust-lang/rust/pull/103877 has too much of an impact to beta backport. So let's just increase the limit, avoiding the immediate breakage.

r? ``@pnkfelix``

19 months agoRollup merge of #104780 - BoxyUwU:error_reported_not_be_bad, r=oli-obk
Matthias Krüger [Thu, 24 Nov 2022 20:34:54 +0000 (21:34 +0100)]
Rollup merge of #104780 - BoxyUwU:error_reported_not_be_bad, r=oli-obk

make `error_reported` check for delayed bugs

Fixes #104768

`error_reported()` was only checking if there were errors emitted, not for `delay_bug`s which can also be a source of `ErrorGuaranteed`. I assume the same is true of `lint_err_count` but i dont know

19 months agoRollup merge of #104774 - vojtechkral:doc-str-empty-split-whitespace, r=thomcc
Matthias Krüger [Thu, 24 Nov 2022 20:34:54 +0000 (21:34 +0100)]
Rollup merge of #104774 - vojtechkral:doc-str-empty-split-whitespace, r=thomcc

Document split{_ascii,}_whitespace() for empty strings

doc change only

19 months agoRollup merge of #104773 - oli-obk:overlap, r=lcnr
Matthias Krüger [Thu, 24 Nov 2022 20:34:53 +0000 (21:34 +0100)]
Rollup merge of #104773 - oli-obk:overlap, r=lcnr

OpaqueCast projections are always overlapping, they can't possibly be disjoint

r? ``@lcnr``

19 months agoRollup merge of #104747 - petrochenkov:ctorfields, r=cjgillot
Matthias Krüger [Thu, 24 Nov 2022 20:34:53 +0000 (21:34 +0100)]
Rollup merge of #104747 - petrochenkov:ctorfields, r=cjgillot

resolve: Don't use constructor def ids in the map for field names

Also do some minor cleanup to insertion of those field names.

Addresses a FIXME left in https://github.com/rust-lang/rust/pull/103578.

19 months agoRollup merge of #104704 - ecnelises:p10vec, r=jackh726
Matthias Krüger [Thu, 24 Nov 2022 20:34:52 +0000 (21:34 +0100)]
Rollup merge of #104704 - ecnelises:p10vec, r=jackh726

Allow power10-vector feature in PowerPC

Note that we don't have `power10-altivec`:

https://github.com/llvm/llvm-project/blob/57fd7ffefffae313de800fecdd9f095a17bfd4ea/llvm/lib/Target/PowerPC/PPC.td#L277-L280

19 months agoRollup merge of #104514 - chenyukang:yukang/fix-104513-ice, r=petrochenkov
Matthias Krüger [Thu, 24 Nov 2022 20:34:51 +0000 (21:34 +0100)]
Rollup merge of #104514 - chenyukang:yukang/fix-104513-ice, r=petrochenkov

Use node_ty_opt to avoid ICE in visit_ty

Fixes #104513

19 months agoAuto merge of #103693 - HKalbasi:master, r=oli-obk
bors [Thu, 24 Nov 2022 20:29:13 +0000 (20:29 +0000)]
Auto merge of #103693 - HKalbasi:master, r=oli-obk

Make rustc_target usable outside of rustc

I'm working on showing type size in rust-analyzer (https://github.com/rust-lang/rust-analyzer/pull/13490) and I currently copied rustc code inside rust-analyzer, which works, but is bad. With this change, I would become able to use `rustc_target` and `rustc_index` directly in r-a, reducing the amount of copy needed.

This PR contains some feature flag to put nightly features behind them to make crates buildable on the stable compiler + makes layout related types generic over index type + removes interning of nested layouts.

19 months agoimprove array_from_fn documenation
Fabian Hintringer [Thu, 24 Nov 2022 18:24:37 +0000 (19:24 +0100)]
improve array_from_fn documenation

19 months agoUse infcx.partially_normalize_associated_types_in
Santiago Pastorino [Thu, 24 Nov 2022 13:50:23 +0000 (10:50 -0300)]
Use infcx.partially_normalize_associated_types_in

19 months agoAuto merge of #104321 - Swatinem:async-gen, r=oli-obk
bors [Thu, 24 Nov 2022 17:14:42 +0000 (17:14 +0000)]
Auto merge of #104321 - Swatinem:async-gen, r=oli-obk

Avoid `GenFuture` shim when compiling async constructs

Previously, async constructs would be lowered to "normal" generators, with an additional `from_generator` / `GenFuture` shim in between to convert from `Generator` to `Future`.

The compiler will now special-case these generators internally so that async constructs will *directly* implement `Future` without the need to go through the `from_generator` / `GenFuture` shim.

The primary motivation for this change was hiding this implementation detail in stack traces and debuginfo, but it can in theory also help the optimizer as there is less abstractions to see through.

---

Given this demo code:

```rust
pub async fn a(arg: u32) -> Backtrace {
    let bt = b().await;
    let _arg = arg;
    bt
}

pub async fn b() -> Backtrace {
    Backtrace::force_capture()
}
```

I would get the following with the latest stable compiler (on Windows):

```
   4: async_codegen::b::async_fn$0
             at .\src\lib.rs:10
   5: core::future::from_generator::impl$1::poll<enum2$<async_codegen::b::async_fn_env$0> >
             at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\core\src\future\mod.rs:91
   6: async_codegen::a::async_fn$0
             at .\src\lib.rs:4
   7: core::future::from_generator::impl$1::poll<enum2$<async_codegen::a::async_fn_env$0> >
             at /rustc/897e37553bba8b42751c67658967889d11ecd120\library\core\src\future\mod.rs:91
```

whereas now I get a much cleaner stack trace:

```
   3: async_codegen::b::async_fn$0
             at .\src\lib.rs:10
   4: async_codegen::a::async_fn$0
             at .\src\lib.rs:4
```

19 months agoDocument split{_ascii,}_whitespace() for empty strings
Vojtech Kral [Wed, 23 Nov 2022 14:36:51 +0000 (15:36 +0100)]
Document split{_ascii,}_whitespace() for empty strings

19 months agoUnsupported query error now specifies if its unsupported for local or external crate
Sarthak Singh [Mon, 21 Nov 2022 14:45:07 +0000 (20:15 +0530)]
Unsupported query error now specifies if its unsupported for local or external crate

19 months agomove things from rustc_target::abi to rustc_abi
hkalbasi [Sun, 6 Nov 2022 21:06:11 +0000 (00:36 +0330)]
move things from rustc_target::abi to rustc_abi

19 months agomove some layout logic to rustc_target::abi::layout
hkalbasi [Tue, 1 Nov 2022 16:20:30 +0000 (19:50 +0330)]
move some layout logic to rustc_target::abi::layout

19 months agomake rustc_target usable outside of rustc
hkalbasi [Fri, 28 Oct 2022 15:15:55 +0000 (18:45 +0330)]
make rustc_target usable outside of rustc

19 months agowith_query_mode -> new
Santiago Pastorino [Thu, 24 Nov 2022 12:32:48 +0000 (09:32 -0300)]
with_query_mode -> new

19 months agoRemove normalize_projection_type
Santiago Pastorino [Wed, 23 Nov 2022 20:06:56 +0000 (17:06 -0300)]
Remove normalize_projection_type

19 months agomake `error_reported` check for delayed bugs
Boxy [Thu, 24 Nov 2022 11:12:34 +0000 (11:12 +0000)]
make `error_reported` check for delayed bugs

19 months agoAuto merge of #104809 - matthiaskrgr:rollup-8abjdwh, r=matthiaskrgr
bors [Thu, 24 Nov 2022 09:44:46 +0000 (09:44 +0000)]
Auto merge of #104809 - matthiaskrgr:rollup-8abjdwh, r=matthiaskrgr

Rollup of 9 pull requests

Successful merges:

 - #103908 (Suggest `.clone()` or `ref binding` on E0382)
 - #104517 (Throw error on failure in loading llvm-plugin)
 - #104594 (Properly handle `Pin<&mut dyn* Trait>` receiver in codegen)
 - #104742 (Make `deref_into_dyn_supertrait` lint the impl and not the usage)
 - #104753 (Pass `InferCtxt` to `DropRangeVisitor` so we can resolve vars)
 - #104771 (Add regression test for issue #99938)
 - #104772 (Small accessibility improvements)
 - #104775 (Use ObligationCtxt::normalize)
 - #104778 (:arrow_up: rust-analyzer)

Failed merges:

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

19 months agoAvoid `GenFuture` shim when compiling async constructs
Arpad Borsos [Fri, 18 Nov 2022 21:56:22 +0000 (22:56 +0100)]
Avoid `GenFuture` shim when compiling async constructs

Previously, async constructs would be lowered to "normal" generators,
with an additional `from_generator` / `GenFuture` shim in between to
convert from `Generator` to `Future`.

The compiler will now special-case these generators internally so that
async constructs will *directly* implement `Future` without the need
to go through the `from_generator` / `GenFuture` shim.

The primary motivation for this change was hiding this implementation
detail in stack traces and debuginfo, but it can in theory also help
the optimizer as there is less abstractions to see through.