Commit graph

280818 commits

Author SHA1 Message Date
Lukas Wirth
4aa318c35c
Merge pull request #19143 from Veykril/push-mkokotluzskw
Propogate error types in mir type projections
2025-02-12 08:40:43 +00:00
Lukas Wirth
3a041fcc2c Propogate error types in mir type projections 2025-02-12 09:24:33 +01:00
Lukas Wirth
8ddf82b5b7
Merge pull request #19140 from joshrotenberg/remove-mdbook-toc-config
doc: remove unused plugin config
2025-02-12 07:48:50 +00:00
Lukas Wirth
98096fedac
Merge pull request #19139 from Wilfred/fix_assists_urls
manual: Fix URLs to rustdoc pages
2025-02-12 07:48:28 +00:00
Josh Rotenberg
3a7a47b3b6 remove unused plugin config 2025-02-11 13:52:01 -08:00
Chayim Refael Friedman
8453e14706
Merge pull request #19133 from joshrotenberg/fix-manual-github-paths
doc: fix mdbook repository paths
2025-02-11 20:28:48 +00:00
Wilfred Hughes
d695e33c83 manual: Fix URLs to rustdoc pages
Now that the manual lives at /manual/, we need to use absolute URLs
to link to rustdoc content.
2025-02-11 12:10:32 -08:00
Chayim Refael Friedman
da4c099375
Merge pull request #19117 from gohome001/implicit-drop-inlay-hints-bug
Fix: don't emit implicit drop inlay hints for macro
2025-02-11 13:18:04 +00:00
Lukas Wirth
4883966818
Merge pull request #18998 from ChayimFriedman2/exclude
fix: Make `rust-analyzer.files.excludeDirs` work, actually
2025-02-11 11:41:54 +00:00
gohome001
4036a7a77d add test case for ignoring inlay hint for macro call 2025-02-11 15:27:34 +08:00
gohome001
6e6bdc311a don't emit implicit drop inlay hints for macro 2025-02-11 15:24:46 +08:00
Josh Rotenberg
7c68345e1b fix mdbook paths 2025-02-10 15:20:51 -08:00
Lukas Wirth
5373014378
Merge pull request #19124 from jyn514/range-fmt-off-by-one
Fix off-by-one error in RangeFormatting
2025-02-10 15:25:54 +00:00
Chayim Refael Friedman
340e9a3364
Merge pull request #19088 from Hmikihiro/all_remove_duplicate_module_adt
fix: if item exsits on module, resolve as module instead of type
2025-02-10 09:02:30 +00:00
Hayashi Mikihiro
ef8574aa04 Shadowing BuiltinType by Module
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-02-10 17:46:43 +09:00
Laurențiu Nicola
8fd713b7d3
Merge pull request #19126 from lnicola/sync-from-rust
minor: Sync from downstream
2025-02-10 06:07:06 +00:00
Laurențiu Nicola
24d7a1490a Bump rustc crates 2025-02-10 07:52:04 +02:00
Laurențiu Nicola
15cd1f011c Merge from rust-lang/rust 2025-02-10 07:49:43 +02:00
Laurențiu Nicola
879dc387cd Preparing for merge from rust-lang/rust 2025-02-10 07:49:25 +02:00
bors
d9a4a47b8b Auto merge of #136785 - matthiaskrgr:rollup-sdhlna8, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #135488 (Stabilize `vec_pop_if`)
 - #136068 (crashes: more tests)
 - #136694 (Update minifier version to `0.3.4`)
 - #136722 (Visit all debug info in MIR Visitor)
 - #136746 (Emit an error if `-Zdwarf-version=1` is requested)
 - #136760 (Fix unwrap error in overflowing int literal)
 - #136782 (Fix mistake in x86_64-unknown-freebsd platform description)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-02-10 01:41:50 +00:00
jyn
d2459e5c1e fix target dir test 2025-02-09 16:34:01 -05:00
jyn
9bd9bcf496 fix off-by-one error 2025-02-09 15:23:53 -05:00
Matthias Krüger
cfd65f0315
Rollup merge of #136782 - ehuss:freebsd-platform, r=jieyouxu
Fix mistake in x86_64-unknown-freebsd platform description

Fixes the description for x86_64-unknown-freebsd which looks to inadvertently say amd64.
2025-02-09 19:44:54 +01:00
Matthias Krüger
b5b460ddf1
Rollup merge of #136760 - chenyukang:fix-overflowing-int-lint-crash, r=oli-obk
Fix unwrap error in overflowing int literal

Fixes #136675

it's maybe `negative` only from [check_lit](526e3288fe/compiler/rustc_lint/src/types.rs (L546)), in this scenario the fields in `TypeLimits` is none.

r? ``@oli-obk``
2025-02-09 19:44:53 +01:00
Matthias Krüger
4b319bcada
Rollup merge of #136746 - wesleywiser:err_dwarf1, r=Urgau
Emit an error if `-Zdwarf-version=1` is requested

DWARF 1 is very different than DWARF 2+[^1] and LLVM does not really seem to support DWARF 1 as Clang does not offer a `-gdwarf-1` flag[^2] and `llc` will just generate DWARF 2 with the version set to 1[^3].

Since this isn't actually supported (and it's not clear it would be useful anyway), report that DWARF 1 is not supported if it is requested.

Also add a help message to the error saying which versions are supported.

cc #103057

[^1]: https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#index-gdwarf
[^2]: https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-gdwarf
[^3]: https://godbolt.org/z/s85d87n3a
2025-02-09 19:44:53 +01:00
Matthias Krüger
d64bd3bedd
Rollup merge of #136722 - kornelski:visit-spans, r=chenyukang
Visit all debug info in MIR Visitor

I've been experimenting with simplifying debug info in MIR inliner, and discovered that MIR Visitor doesn't reliably visit all spans. This PR adds the missing visitor calls.
2025-02-09 19:44:52 +01:00
Matthias Krüger
370c8afa10
Rollup merge of #136694 - GuillaumeGomez:update-minifier, r=notriddle
Update minifier version to `0.3.4`

It fixes a bug where a whitespace would get removed in `a [attribute]` (you're not forced to add a tag before an attribute selector).

r? ````@notriddle````
2025-02-09 19:44:51 +01:00
Matthias Krüger
a2768a8b79
Rollup merge of #136068 - matthiaskrgr:crashesjan25, r=Mark-Simulacrum
crashes: more tests

try-job: aarch64-apple
try-job: x86_64-msvc-1
try-job: x86_64-gnu
try-job: dist-i586-gnu-i586-i686-musl
2025-02-09 19:44:51 +01:00
Matthias Krüger
b83a30c1b6
Rollup merge of #135488 - GrigorenkoPV:vec_pop_if, r=jhpratt
Stabilize `vec_pop_if`

Tracking issue: #122741

FCP completed in https://github.com/rust-lang/rust/issues/122741#issuecomment-2605116387
2025-02-09 19:44:50 +01:00
Eric Huss
2d0f31ba88 Fix mistake in x86_64-unknown-freebsd platform description 2025-02-09 09:53:16 -08:00
Wesley Wiser
eea8ce5be4 Emit an error if -Zdwarf-version=1 is requested
DWARF 1 is very different than DWARF 2+ (see the commentary in
https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html#index-gdwarf)
and LLVM does not really seem to support DWARF 1 as Clang does not offer
a `-gdwarf-1` flag and `llc` will just generate DWARF 2 with the version
set to 1: https://godbolt.org/z/s85d87n3a.

Since this isn't actually supported (and it's not clear it would be
useful anyway), report that DWARF 1 is not supported if it is requested.

Also add a help message to the error saying which versions are supported.
2025-02-09 10:05:13 -06:00
bors
124cc92199 Auto merge of #136751 - bjorn3:update_rustfmt, r=Mark-Simulacrum
Update bootstrap compiler and rustfmt

The rustfmt version we previously used formats things differently from what the latest nightly rustfmt does. This causes issues for subtrees that get formatted both in-tree and in their own repo. Updating the rustfmt used in-tree solves those issues. Also bumped the bootstrap compiler as the stage0 update command always updates both at the same
time.
2025-02-09 15:44:16 +00:00
bors
a26e97be88 Auto merge of #136754 - Urgau:rollup-qlkhjqr, r=Urgau
Rollup of 5 pull requests

Successful merges:

 - #134679 (Windows: remove readonly files)
 - #136213 (Allow Rust to use a number of libc filesystem calls)
 - #136530 (Implement `x perf` directly in bootstrap)
 - #136601 (Detect (non-raw) borrows of null ZST pointers in CheckNull)
 - #136659 (Pick the max DWARF version when LTO'ing modules with different versions )

r? `@ghost`
`@rustbot` modify labels: rollup
2025-02-09 12:54:26 +00:00
yukang
ace6bb9869 Fix unwrap error in overflowing int literal 2025-02-09 20:39:43 +08:00
Chayim Refael Friedman
d4f7c7668f
Merge pull request #19120 from ahaoboy/patch-1
doc: error url
2025-02-09 11:18:39 +00:00
bors
1ff21350fd Auto merge of #136762 - workingjubilee:rollup-23fn0nl, r=workingjubilee
Rollup of 8 pull requests

Successful merges:

 - #136397 (Add a comment pointing to ICE-136223)
 - #136686 (Clean up `HashMap` and `HashSet` docs.)
 - #136706 (compiler: mostly-finish `rustc_abi` updates)
 - #136710 (Document `Sum::sum` returns additive identities for `[]`)
 - #136724 (Make `AsyncFnOnce`, `AsyncFnMut`, `AsyncFn` non-`#[fundamental]`)
 - #136727 (Have a break from review rotation)
 - #136730 (transmutability: fix ICE when passing wrong ADT to ASSUME)
 - #136736 (Small resolve refactor)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-02-09 10:08:04 +00:00
阿豪
82162a7ac8
doc: error url 2025-02-09 17:49:26 +08:00
Matthias Krüger
fb52da3808 crashes: more tests 2025-02-09 10:40:18 +01:00
Jubilee
45289b74fa
Rollup merge of #136736 - llogiq:small-resolve-refactor, r=jieyouxu
Small resolve refactor

I was looking into how resolve works in order to find a good way for clippy to shorten paths in messages and suggestions, and found a needless `.collect()` and a recursive function that could be written as a loop, also removed a panicky code path.
2025-02-08 20:41:24 -08:00
Jubilee
36c1809aa2
Rollup merge of #136730 - lukas-code:trans-ice, r=jswrenn
transmutability: fix ICE when passing wrong ADT to ASSUME

- Remove an incorrect assert that the `ASSUME` parameter has the type `Assume` and delay a bug instead.
- Since we checked the type of `ASSUME` is `Assume` (an ADT), its valtree must be a branch, so we can just unwrap it.

r? ```@jswrenn```
2025-02-08 20:41:23 -08:00
Jubilee
117ebaa8e6
Rollup merge of #136727 - chenyukang:yukang-fix-review-scope, r=workingjubilee
Have a break from review rotation

Be busy on the job recently.
2025-02-08 20:41:23 -08:00
Jubilee
bf2c5323e0
Rollup merge of #136724 - steffahn:asyncfn-non-fundamental, r=compiler-errors
Make `AsyncFnOnce`, `AsyncFnMut`, `AsyncFn` non-`#[fundamental]`

Address the issue #136723 on nightly (the issue will only *actually* be fixed with a beta backport).
2025-02-08 20:41:22 -08:00
Jubilee
c30908979f
Rollup merge of #136710 - JakenHerman:jaken/iterator-docs, r=workingjubilee
Document `Sum::sum` returns additive identities for `[]`

Because the neutral element of `<fNN as iter::Sum>` was changed to `neg_zero`, the documentation needed to be updated, as it was reporting inadequate information about what should be expected from the return.

Relevant Commit: 4908188518
Relevant Pull Request: https://github.com/rust-lang/rust/pull/129321

---

The referenced commit causes unintended side effects on presentation layer applications like using Tera templates, for example. I'm not sure what the motivation was behind the original change, but it seems like more discussion should be put into this issue and potentially have that change reverted.
2025-02-08 20:41:21 -08:00
Jubilee
5e4d6278af
Rollup merge of #136706 - workingjubilee:finish-up-rustc-abi-updates, r=compiler-errors
compiler: mostly-finish `rustc_abi` updates

This almost-finishes all the updates in the compiler to use `rustc_abi` and removes some of the reexports of `rustc_abi` items in `rustc_target` that were previously available.

r? ```@compiler-errors```
2025-02-08 20:41:21 -08:00
Jubilee
e7ad8cec96
Rollup merge of #136686 - bjoernager:master, r=jhpratt
Clean up `HashMap` and `HashSet` docs.

This commit makes some small, pedantic changes to the docs for `HashMap` and `HashSet`, which fixes that:

* "HashMap" is not always formatted as code (as in `HashMap`), and that
* `HashSet` sometimes references `HashMap` instead of itself.
2025-02-08 20:41:20 -08:00
Jubilee
ef22c14dfb
Rollup merge of #136397 - Shunpoco:issue-136223-ICE-pattern-mutability-cap-violated, r=Nadrieril
Add a comment pointing to ICE-136223

Fixes #136223

## Steps how the ICE happen
This explanation is based on the test case `&Some(Some(x)) = &Some(&mut Some(0))`.
The case should fail with E0596 error, but it catches the debug assertion instead.

1. For the first `&`: In check_pat_ref(), the value max_ref_mutbl becomes MutblCap::Not ([here](fdd1a3b026/compiler/rustc_hir_typeck/src/pat.rs (L2394-L2396))). Once max_ref_mutbl becomes Not, it will never be back to MutblCap::Mut.
2. For `&mut`: In peel_off_references(), because Some(x) doesn't have `&` nor `&mut`, `&mut` in `&mut Some(0)` is not consumed then default_binding_mode (def_br) becomes `ByRef::Yes(Mutability::Mut)` (around [here](fdd1a3b026/compiler/rustc_hir_typeck/src/pat.rs (L519-L536))). This will be inherited to the next step. So this pattern has the mismatch between `def_br=Yes(Mut)` and `max_ref_mutbl=Not` now.
3. For the value `0`: Because of the step 2, the default_binding_mode is `Yes(Mut)`, but max_ref_mutbl is `Not` from the step 1. It causes the assertion error [here](fdd1a3b026/compiler/rustc_hir_typeck/src/pat.rs (L427-L430)).

## What this PR fixes
Step 1 has happened from [this commit](e2f3ce9568) by deleting `no_ref_mut_behind_and` from the if block. In my understanding, after RFC3627 is released, step 1 should happen not only 2024 edition but also other editions to track MutblCap value. But for now, it should not happen for non-2024 edition. So I put it back.

NOTE: I think there is another solution - We should return an E0596 error in calc_default_binding_mode() instead of the debug assertion. Since the assertion is caused by the mismatch between `def_br = Yes(Mut)` and `max_ref_mutbl = Not`, but in my understanding this violation is the same as E0596. check_pat_ident() does returns E0596 by a similar reason [here](fdd1a3b026/compiler/rustc_hir_typeck/src/pat.rs (L837-L856)).
2025-02-08 20:41:20 -08:00
Urgau
5ec56e5fbb
Rollup merge of #136659 - wesleywiser:dwarf_version_lto_merge_behavior, r=jieyouxu
Pick the max DWARF version when LTO'ing modules with different versions

Currently, when rustc compiles code with `-Clto` enabled that was built
with different choices for `-Zdwarf-version`, a warning will be
reported. It's very easy to observe this by compiling most anything (eg,
"hello world") and specifying `-Clto -Zdwarf-version=5` since the
standard library is distributed with `-Zdwarf-version=4`.

This behavior isn't actually useful for a few reasons:
- From observation, LLVM chooses to pick the highest DWARF version
  anyway after issuing the warning.
- Clang specifies that in this case, the max version should be picked
  without a warning and as a general principle, we want to support
  x-lang LTO with Clang which implies using the same module flag merge
  behaviors.
- Debuggers need to be able to handle a variety of versions within the
  same debugging session as you can easily have some parts of a binary
  (or some dynamic libraries within an application) all compiled with
  different DWARF versions.

This commit changes the module flag merge behavior to match Clang and
use the highest version of DWARF. It also adds a test to ensure this
behavior is respected in the case of two crates being LTO'd together and
adds a test to ensure no warning is printed.

Fixes #130041 which fails due to these warnings being printed

cc #103057
2025-02-09 00:37:28 +01:00
Urgau
e5bc12e4a3
Rollup merge of #136601 - compiler-errors:borrow-null-zst, r=saethlin
Detect (non-raw) borrows of null ZST pointers in CheckNull

Fixes #136568. Ensures that we check that borrows of derefs are non-null in the `CheckNull` pass **even if** it's a ZST pointee.

I'm actually surprised that this is UB in Miri, but if it's certainly UB, then this PR modifies the null check to be stricter. I couldn't find anywhere in https://doc.rust-lang.org/reference/behavior-considered-undefined.html that discusses this case specifically, but I didn't read it too closely, or perhaps it's just missing a bullet point.

On the contrary, if this is actually erroneous UB in Miri, then I'm happy to close this (and perhaps fix the null check in Miri to exclude ZSTs?)

On the double contrary, if this is still an "open question", I'm also happy to close this and wait for a decision to be made.

r? ``@saethlin`` cc ``@RalfJung`` (perhaps you feel strongly about this change)
2025-02-09 00:37:28 +01:00
Urgau
d024cef057
Rollup merge of #136530 - Kobzol:x-perf, r=onur-ozkan
Implement `x perf` directly in bootstrap

Discussed [here](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Turning.20.60x.20perf.60.20into.20a.20first.20class.20command).

Implementing the command directly in bootstrap let's us correctly build the compiler toolchain based on input arguments (such as include rustdoc in the toolchain [only] when needed), and it also makes the CLI interface nicer.

r? ``@onur-ozkan``
2025-02-09 00:37:27 +01:00
Urgau
9530d243d7
Rollup merge of #136213 - erickt:fs, r=Mark-Simulacrum
Allow Rust to use a number of libc filesystem calls

This allows Rust on Fuchsia to use a number of function calls from libc:

* dirfd
* fdatasync
* flock with LOCK_EX, LOCK_SH, LOCK_NB, LOCK_UN
* fstatat

cc #120426

try-job: dist-various-2
2025-02-09 00:37:27 +01:00