Commit graph

149311 commits

Author SHA1 Message Date
The Miri Cronjob Bot
14f65cbeea Preparing for merge from rustc 2024-06-07 04:56:19 +00:00
Jubilee
b1ab8d59f4
Rollup merge of #126101 - lqd:revert-124099, r=wesleywiser
Revert "Disallow ambiguous attributes on expressions" on nightly

As discussed in [today's t-compiler meeting](https://rust-lang.zulipchat.com/#narrow/stream/238009-t-compiler.2Fmeetings/topic/.5Bweekly.5D.202024-06-06/near/443079505), this reverts PR #124099 to fix P-critical beta regressions #125199.

r? ``@wesleywiser``

Opening as draft so that ``@wesleywiser`` and ``@apiraino,`` you can tell me whether you wanted:
1. a `beta-accepted` revert of #124099 on nightly (this PR)? That will need to be backported to beta (even though #126093 may be the last of those)
2. a revert of #124099 on beta?
3. all of the above?

I also opened #126102, another draft PR to revert #124099 on beta, should you choose options 2 or 3.
2024-06-06 21:10:11 -07:00
Sunshine
ceaa42b817 Update tests 2024-06-07 11:55:52 +08:00
Sunshine
5a23111b77 Follow ESLint instructions. 2024-06-07 09:36:43 +08:00
carbotaniuman
15f8ffe371 Fix formatting 2024-06-06 20:27:25 -05:00
carbotaniuman
87be1bae73 Fix build 2024-06-06 20:27:25 -05:00
carbotaniuman
67f5dd1ef1 Parse unsafe attributes 2024-06-06 20:26:27 -05:00
Sunshine
63411076c3 Other EcmaScript version bump 2024-06-07 08:44:52 +08:00
Slanterns
f275ca09dd
bless std_instead_of_core 2024-06-07 08:37:05 +08:00
Wilfred Hughes
22ee477606 chore: Prefer tracing span shorthand macros 2024-06-06 16:52:25 -07:00
Sunshine
d73d273482 Bump the EcmaScript version in the eslint configuration. 2024-06-07 07:51:29 +08:00
bors
76e7a0849c Auto merge of #126104 - workingjubilee:rollup-t1ac2ld, r=workingjubilee
Rollup of 12 pull requests

Successful merges:

 - #125220 (Repair several `riscv64gc-unknown-linux-gnu` codegen tests)
 - #126033 (CI: fix publishing of toolstate history)
 - #126034 (Clarify our tier 1 Windows Server support)
 - #126035 (Some minor query system cleanups)
 - #126051 (Clarify an `x fmt` error.)
 - #126059 (Raise `DEFAULT_MIN_STACK_SIZE` to at least 64KiB)
 - #126064 (Migrate `run-make/manual-crate-name` to `rmake.rs`)
 - #126072 (compiletest: Allow multiple `//@ run-flags:` headers)
 - #126073 (Port `tests/run-make-fulldeps/obtain-borrowck` to ui-fulldeps)
 - #126081 (Do not use relative paths to Rust source root in run-make tests)
 - #126086 (use windows compatible executable name for libcxx-version)
 - #126096 ([RFC-2011] Allow `core_intrinsics` when activated)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-06-06 22:27:56 +00:00
Sunshine
f9f51839e5 Tidying 2024-06-07 06:09:30 +08:00
Sunshine
dd5103bb68 Add test for PR #126057 2024-06-07 05:49:46 +08:00
Jubilee
7e81738d5c
Rollup merge of #126086 - onur-ozkan:use-exe, r=petrochenkov
use windows compatible executable name for libcxx-version

Resolves #https://github.com/rust-lang/rust/pull/125411#discussion_r1629915724
2024-06-06 14:46:25 -07:00
Jubilee
af229f5e00
Rollup merge of #126081 - Kobzol:run-make-relative-paths, r=jieyouxu
Do not use relative paths to Rust source root in run-make tests

Pre-requisite for https://github.com/rust-lang/rust/issues/126080.

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

r? `@jieyouxu`
2024-06-06 14:46:24 -07:00
Jubilee
f4016e2bf5
Rollup merge of #126072 - Zalathar:run-flags, r=jieyouxu
compiletest: Allow multiple `//@ run-flags:` headers

While working on some tests, I was annoyed to find that multiple `// `@run-flags:`` headers do not combine with each other (as `//@ compile-flags:` headers do), and instead all but one are silently discarded.

This makes it impossible to split long flag lists into multiple lines.

Fortunately it's easy to just recycle the existing logic from the other command-line-flags headers.
2024-06-06 14:46:23 -07:00
Jubilee
2c1e71bac5
Rollup merge of #126064 - GuillaumeGomez:migrate-run-make-manual-crate-name, r=jieyouxu
Migrate `run-make/manual-crate-name` to `rmake.rs`

Part of https://github.com/rust-lang/rust/issues/121876.

r? ``@jieyouxu``
2024-06-06 14:46:23 -07:00
Jubilee
f739fefc76
Rollup merge of #126051 - nnethercote:clarify-x-fmt-error, r=Nilstrieb
Clarify an `x fmt` error.

For anyone who was using paths with `x fmt` previously, make the error message a bit clearer.

r? ```@GuillaumeGomez```
2024-06-06 14:46:22 -07:00
Jubilee
a1baa7b04d
Rollup merge of #126035 - oli-obk:query_macro_errors, r=fmease
Some minor query system cleanups

* Improves diagnostics on conflicting query flags
* removes unnecessary impls
* `track_caller`

pulled out of https://github.com/rust-lang/rust/pull/115613
2024-06-06 14:46:21 -07:00
Jubilee
14d9a3e230
Rollup merge of #126034 - ChrisDenton:winsupport, r=ehuss
Clarify our tier 1 Windows Server support

I've been asked a number of times about our minimum Windows Server support so this PR updates the documentation to be more explicit.

Note that this doesn't change our support at all, it just clarifies it. Windows Server 2016 is the first "Windows 10" server OS (specifically it has the same [build number](https://en.wikipedia.org/wiki/Windows_Server_2016#Release_to_manufacturing) as Windows 10 1607).
2024-06-06 14:46:21 -07:00
Jubilee
835ceeae2a
Rollup merge of #126033 - Kobzol:fix-toolstate-history, r=ehuss
CI: fix publishing of toolstate history

Hopefully fixes the upload of toolstate history that I broke in https://github.com/rust-lang/rust/pull/125145. The problem is that the toolstate environment variables need to be available not just when updating `latest.json` through the Bash/Python script, but also in the main CI workflow, where `history` is updated in bootstrap (the toolstate logic is distributed in two places :/ ).

The only tricky thing is how to pass the token secret to the CI job, as I need to enable it only for privileged (`auto`/`try`) builds. I assume that the secret is filled only on `rust-lang-ci`, not on `rust-lang`, so I chose the easiest way of just configuring the environment variable globally. We'll see if that works on PR CI.

r? `@ehuss`
2024-06-06 14:46:20 -07:00
Rémy Rakic
216424da32 Revert "Rollup merge of #124099 - voidc:disallow-ambiguous-expr-attrs, r=davidtwco"
This reverts commit 57dad1d75e, reversing
changes made to 36316df9fe.
2024-06-06 20:39:54 +00:00
bors
98489f2487 Auto merge of #126068 - lqd:revert-124976, r=petrochenkov
Revert "use `tcx.used_crates(())` more" before it reaches beta

There are more open issues caused by #124976 than will be fixed by #125493 alone. The beta cut is soon, so let's revert it and buy some time to analyze and fix these issues in our own time.

fixes https://github.com/rust-lang/rust/issues/125474
fixes https://github.com/rust-lang/rust/issues/125484
fixes https://github.com/rust-lang/rust/issues/125646
fixes https://github.com/rust-lang/rust/issues/125707
fixes #126066
fixes #125934
fixes https://github.com/rust-lang/rust/issues/126021

r? `@petrochenkov`
`@bors` p=1
2024-06-06 20:18:43 +00:00
Jakub Beránek
6e1121b492
Do not use relative paths to Rust source root in run-make tests 2024-06-06 19:16:53 +02:00
onur-ozkan
9c46479a6a use windows compatible executable name for libcxx-version
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-06 20:13:39 +03:00
onur-ozkan
c76e59e712 prefer compile::stream_cargo for building tools
Previously, we were running bare commands for `ToolBuild` step and
were unable to utilize some of the flags which  are already handled by
`compile::stream_cargo`.

This change makes `ToolBuild` to use `compile::stream_cargo`, allowing us
to benefit from the flags supported by the bootstrap cargo.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-06 20:06:20 +03:00
Zalathar
2692d44d83 compiletest: Allow multiple //@ run-flags: headers 2024-06-07 01:51:57 +10:00
bors
e1ac0fa95b Auto merge of #126061 - nikic:llvm-18.1.7, r=wesleywiser
Update to LLVM 18.1.7

This release only contains a single commit in code that we build: 7e6ece9b4f It addresses a regression in LLVM 18.1.6 that may result in compiler crashes when targeting ppc.
2024-06-06 15:18:32 +00:00
roife
8573eb2060 fix: incorrect formatting of hover actions 2024-06-06 21:07:59 +08:00
bors
50297bb417 Auto merge of #125411 - onur-ozkan:sanity-check-libstdc++, r=Mark-Simulacrum
check host's libstdc++ version when using ci llvm

If the host's libstdc++ version is too old using ci-llvm may result in an ABI mismatch between the local libstdc++ and libLLVM.so. This PR adds a sanity check to immediately fail at the beginning of the bootstrap before starting the actual build. I am not sure if '8' is the best threshold, but it should be a good start and we can increase it anytime if needed.

Fixes #123037
2024-06-06 12:52:06 +00:00
Rémy Rakic
0a4176a831 Revert "Rollup merge of #124976 - petrochenkov:usedcrates, r=oli-obk"
This reverts commit eda4a35f36, reversing
changes made to eb6b35b5bc.
2024-06-06 10:06:28 +00:00
Oli Scherer
c7ced1ba53 Make the panic info more useful 2024-06-06 09:47:10 +00:00
bors
49dd2d3d29 Auto merge of #17352 - roife:fix-issue-17338, r=Veykril
fix: do not resolve prelude within block modules

fix #17338 (continuing from #17251).

In #17251, we injected preludes into non-top-level modules, which leading to r-a to directly resolve names in preludes in block modules. This PR fix it by checking whether the module is a pseudo-module introduced by blocks. (similar to what we do for extern preludes)
2024-06-06 09:40:39 +00:00
roife
07fde0779e test: add regression test for prelude shadowing in block modules 2024-06-06 17:03:40 +08:00
roife
6561b71eed fix: do not resolve prelude within block modules 2024-06-06 16:55:09 +08:00
Lukas Wirth
d726854555 Fix file loading of r-a toml files 2024-06-06 10:40:41 +02:00
Guillaume Gomez
7ad5ebc75c Migrate run-make/manual-crate-name to rmake.rs 2024-06-06 10:19:15 +02:00
bors
2d28b6384e Auto merge of #124482 - spastorino:unsafe-extern-blocks, r=oli-obk
Unsafe extern blocks

This implements RFC 3484.

Tracking issue #123743 and RFC https://github.com/rust-lang/rfcs/pull/3484

This is better reviewed commit by commit.
2024-06-06 08:14:58 +00:00
bors
56a298bf3d Auto merge of #17346 - ChosenName:master, r=Veykril
Changed package.json so vscode extension settings have submenus

There are a lot of options that are a part of rust-analyzer, sometimes it can be hard to find an option that you are looking for. To fix this I have put all configurations into categories based on their names. I have also changed the schema in `crates/rust-analyzer/src/config.rs` to reflect this.

Currently for each generated entry the title is redeclared, this does function but I am prepared to change this if it is a problem.
2024-06-06 08:03:17 +00:00
bors
b8e94ddb7d Auto merge of #17350 - Wilfred:mark_missing_file_unused, r=Veykril
fix: Highlight unlinked files consistently with inactive files

Currently, rust-analyzer highlights the entire region when a `cfg` is inactive (e.g. `#[cfg(windows)]` on a Linux machine). However, unlinked files only highlight the first three characters of the file.

This was introduced in #8444, but users have repeatedly found themselves with no rust-analyzer support for a file and unsure why (see e.g. #13226 and the intentionally prominent pop-up added in PR #14366).

(Anecdotally, we see this issue bite our users regularly, particularly people new to Rust.)

Instead, highlight the entire inactive file, but mark it as all as unused. This allows users to hover and run the quickfix from any line.

Whilst this is marginally more prominent, it's less invasive than a pop-up, and users do want to know why they're getting no rust-analyzer support in certain files.

Before (note the subtle grey underline is only at the beginning of the first line):

![Screenshot 2024-06-05 at 5 41 17 PM](https://github.com/rust-lang/rust-analyzer/assets/70800/96f5d778-612e-4838-876d-35d9647fe2aa)

After (user can hover and fix from any line):

![Screenshot 2024-06-05 at 5 42 13 PM](https://github.com/rust-lang/rust-analyzer/assets/70800/6af90b79-018c-42b9-b3c5-f497de2ccbff)
2024-06-06 07:49:58 +00:00
Nikita Popov
46b31e6630 Update to LLVM 18.1.7 2024-06-06 08:37:27 +02:00
bors
2b6a34273d Auto merge of #126056 - matthiaskrgr:rollup-ytwg62v, r=matthiaskrgr
Rollup of 6 pull requests

Successful merges:

 - #124731 (Add translation support by mdbook-i18n-helpers to bootstrap)
 - #125168 (Match ergonomics 2024: align implementation with RFC)
 - #125925 (Don't trigger `unsafe_op_in_unsafe_fn` for deprecated safe fns)
 - #125987 (When `derive`ing, account for HRTB on `BareFn` fields)
 - #126045 (check_expr_struct_fields: taint context with errors if struct definit…)
 - #126048 (Fix typos in cargo-specifics.md)

r? `@ghost`
`@rustbot` modify labels: rollup
2024-06-06 05:56:06 +00:00
Sunshine
c3309ef446 Make html rendered by rustdoc allow searching non-English identifier / alias. Fix alias search result showing undefined description. 2024-06-06 12:06:53 +08:00
onur-ozkan
dd9902118c use bootstrap-self-test feature on libstd check
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-06 07:06:51 +03:00
onur-ozkan
6bfdb040d9 add FIXME on libcxx check
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-06 07:01:40 +03:00
onur-ozkan
a2407e8448 skip src/tools/libcxx-version from tidy
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-06 07:01:37 +03:00
onur-ozkan
73ff1d4b25 check host's libstdc++ version when using ci llvm
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-06 07:01:31 +03:00
onur-ozkan
3a70a810d5 create libcxx-version tool for getting currently used libcxx version
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2024-06-06 07:01:28 +03:00
bors
003a902792 Auto merge of #125958 - BoxyUwU:remove_const_ty, r=lcnr
Remove the `ty` field from type system `Const`s

Fixes #125556
Fixes #122908

Part of the work on `adt_const_params`/`generic_const_param_types`/`min_generic_const_exprs`/generally making the compiler nicer. cc rust-lang/project-const-generics#44

Please review commit-by-commit otherwise I wasted a lot of time not just squashing this into a giant mess (and also it'll be SO much nicer because theres a lot of fluff changes mixed in with other more careful changes if looking via File Changes

---

Why do this?
- The `ty` field keeps causing ICEs and weird behaviour due to it either being treated as "part of the const" or it being forgotten about leading to ICEs.
- As we move forward with `adt_const_params` and a potential `min_generic_const_exprs` it's going to become more complex to actually lower the correct `Ty<'tcx>`
- It muddles the idea behind how we check `Const` arguments have the correct type. By having the `ty` field it may seem like we ought to be relating it when we relate two types, or that its generally important information about the `Const`.
- Brings the compiler more in line with `a-mir-formality` as that also tracks the type of type system `Const`s via `ConstArgHasType` bounds in the env instead of on the `Const` itself.
- A lot of stuff is a lot nicer when you dont have to pass around the type of a const lol. Everywhere we construct `Const` is now significantly nicer 😅

See #125671's description for some more information about the `ty` field

---

General summary of changes in this PR:

- Add `Ty` to `ConstKind::Value` as otherwise there is no way to implement `ConstArgHasType` to ensure that const arguments are correctly typed for the parameter when we stop creating anon consts for all const args. It's also just incredibly difficult/annoying to thread the correct `Ty` around to a bunch of ctfe functions otherwise.
-  Fully implement `ConstArgHasType` in both the old and new solver. Since it now has no reliance on the `ty` field it serves its originally intended purpose of being able to act as a double check that trait vs impls have correctly typed const parameters. It also will now be able to be responsible for checking types of const arguments to parameters under `min_generic_const_exprs`.
- Add `Ty` to `mir::Const::Ty`. I dont have a great understanding of why mir constants are setup like this to be honest. Regardless they need to be able to determine the type of the const and the easiest way to make this happen was to simply store the `Ty` along side the `ty::Const`. Maybe we can do better here in the future but I'd have to spend way more time looking at everywhere we use `mir::Const`.
- rustdoc has its own `Const` which also has a `ty` field. It was relatively easy to remove this.

---

r? `@lcnr` `@compiler-errors`
2024-06-06 03:41:23 +00:00