Commit graph

298901 commits

Author SHA1 Message Date
Michael Goulet
ac8b506ca7 Fix some unused fields in AST visitor 2025-06-16 18:23:31 +00:00
bors
45acf54eea Auto merge of #142589 - Kobzol:rollup-j90fk2j, r=Kobzol
Rollup of 8 pull requests

Successful merges:

 - rust-lang/rust#139340 (Fix RISC-V C function ABI when passing/returning structs containing floats)
 - rust-lang/rust#142341 (Don't suggest converting `///` to `//` when expecting `,`)
 - rust-lang/rust#142414 (ignore `run-make` tests that need `std` on targets without `std`)
 - rust-lang/rust#142498 (Port `#[rustc_as_ptr]` to the new attribute system)
 - rust-lang/rust#142554 (Fix `PathSource` lifetimes.)
 - rust-lang/rust#142562 (Update the `backtrace` submodule)
 - rust-lang/rust#142565 (Test naked asm for wasm32-unknown-unknown)
 - rust-lang/rust#142573 (`fn candidate_is_applicable` to method)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-16 18:20:05 +00:00
Urgau
994794a50b Handle same-crate macro for borrowck semicolon suggestion 2025-06-16 19:58:01 +02:00
Jakub Beránek
b1ba2cdf41
Rollup merge of #142573 - lcnr:search_graph-3, r=lqd
`fn candidate_is_applicable` to method

r? `@BoxyUwU`
2025-06-16 19:54:37 +02:00
Jakub Beránek
a53c1d7c99
Rollup merge of #142565 - bjorn3:wasm32_unknown_naked_asm_test, r=RalfJung
Test naked asm for wasm32-unknown-unknown

cc https://github.com/rust-lang/rust/pull/133952#discussion_r2148924872
2025-06-16 19:54:36 +02:00
Jakub Beránek
15751b4589
Rollup merge of #142562 - tgross35:update-backtrace, r=workingjubilee
Update the `backtrace` submodule

Pick up the following pull requests:

* ci: remove binary size check (not relevant in rust-lang/rust) <https://github.com/rust-lang/backtrace-rs/pull/710>
* Upgrade `ruzstd`, `object`, and `addr2line` to the latest versions <https://github.com/rust-lang/backtrace-rs/pull/718>
2025-06-16 19:54:36 +02:00
Jakub Beránek
d1ed469d26
Rollup merge of #142554 - nnethercote:fix-PathSource-lifetimes, r=petrochenkov
Fix `PathSource` lifetimes.

It currently has two, which don't accurately capture what's happening -- the `TupleStruct` spans are allocated in `ResolverArenas`, which is different to where the `Expr` is allocated -- and require some "outlives" constraints to be used.

This commit adds another lifetime, renames the existing ones, and removes the "outlives" constraints.

r? `@petrochenkov`
2025-06-16 19:54:35 +02:00
Jakub Beránek
1e950ef1b2
Rollup merge of #142498 - GrigorenkoPV:as-ptr-refactor, r=jdonszelmann
Port `#[rustc_as_ptr]` to the new attribute system

It might make sense to introduce some new parser analogous to `Single`, but even more simple: for parsing attributes that take no arguments and may appear only once (such as `#[rustc_as_ptr]` or `#[rustc_const_stable_indirect]`). Not sure if this should be a single `impl` parsing all such attributes, or one impl per attribute. Or how it will play along with the upcoming rework of attribute validation. Or how these argumentless attributes should be called (I've loosely referred to them as `markers` in the name of the new module in this PR, but not sure how good it is).

This is a part of rust-lang/rust#131229, so
r? `@jdonszelmann`

---

For reference, the `#[rustc_as_ptr]` attribute was created back in rust-lang/rust#132732 as a followup to rust-lang/rust#128985.
2025-06-16 19:54:34 +02:00
Jakub Beránek
e83ca067f5
Rollup merge of #142414 - folkertdev:ignore-nostd-tests, r=jieyouxu
ignore `run-make` tests that need `std` on targets without `std`

In particular, anything that includes `none` in the target triple, and `nvptx64-nvidia-cuda`. Right now we don't cross-compile the `run-make` tests, but we want to in the future.

This uses `//@ needs-target-std` introduced in https://github.com/rust-lang/rust/pull/142297.

Useful for https://github.com/rust-lang/rust/pull/139244 and https://github.com/rust-lang/rust/pull/141856.

The modified files are based on running https://github.com/rust-lang/rust/pull/141856 locally. It might be that https://github.com/rust-lang/rust/pull/139244 uncovers some additional files, but that PR needs to be rebased (though actually I'd advice to rebase the non-test changes onto this PR, probably faster that way).

r? ``@jieyouxu``

<details>
  <summary>vim notes for future me</summary>

Make a file with lines like this

```
/home/folkertdev/rust/rust/tests/run-make/export/disambiguator/rmake.rs:1:1
/home/folkertdev/rust/rust/tests/run-make/invalid-so/rmake.rs:1:1
/home/folkertdev/rust/rust/tests/run-make/no-builtins-attribute/rmake.rs:1:1
/home/folkertdev/rust/rust/tests/run-make/export/extern-opt/rmake.rs:1:1
/home/folkertdev/rust/rust/tests/run-make/link-dedup/rmake.rs:1:1
```

then

```
:set errorformat=%f:%l:%c
:cfile /tmp/files-to-fix.txt
```
```
:copen
:cnext
:cprev
```

are your friends

</details>
2025-06-16 19:54:34 +02:00
Jakub Beránek
d68432a1a9
Rollup merge of #142341 - xizheyin:142311, r=fee1-dead
Don't suggest converting `///` to `//` when expecting `,`

Fixes rust-lang/rust#142311
2025-06-16 19:54:33 +02:00
Jakub Beránek
4479d42d60
Rollup merge of #139340 - beetrees:riscv-float-struct-abi, r=workingjubilee
Fix RISC-V C function ABI when passing/returning structs containing floats

RISC-V passes structs containing only one or two floats (or a float and integer pair) in registers, as long as the individual floats/integers fit in a single corresponding register (see [the ABI specification](https://github.com/riscv-non-isa/riscv-elf-psabi-doc/releases/download/v1.0/riscv-abi.pdf) for details). Before this PR, Rust would not check what offset the second float/integer was at, instead assuming that it was at the standard offset for its default alignment. However, as the offset can be affected by `#[repr(align(N))]` and `#[repr(packed)]`, this caused miscompilations (see #115609). To fix this, this PR introduces a `rest_offset` field to `CastTarget` that can be used to explicitly specify at what offset the `rest` part of the cast is located at.

While fixing this, I discovered another bug: the size of the cast target was being used as the size of the MIR return place (when the function was using a `PassMode::Cast` return type). However, the cast target is allowed to be smaller than the size of the actual type, causing a miscompilation. This PR fixes this issue by using the largest of the size of the type and the size of the cast target as the size of the MIR return place, ensuring all reads/writes will be inbounds.

Fixes the RISC-V part of #115609.

cc target maintainers of `riscv64gc-unknown-linux-gnu`: `@kito-cheng` `@michaelmaitland` `@robin-randhawa-sifive` `@topperc`

r? `@workingjubilee`
2025-06-16 19:54:32 +02:00
Daniel Paoliello
db5a427b31 Change __rust_no_alloc_shim_is_unstable to be a function 2025-06-16 10:54:07 -07:00
Daniel Paoliello
6906b44e1c Change __rust_no_alloc_shim_is_unstable to be a function 2025-06-16 10:54:07 -07:00
Daniel Paoliello
5615d055a7 Change __rust_no_alloc_shim_is_unstable to be a function 2025-06-16 10:54:07 -07:00
Michael Goulet
ad60d8eace Make sure to propagate result from visit_expr_fields 2025-06-16 17:49:33 +00:00
Michael Goulet
8a7b50a5da Fold unnecessary visit_struct_field_def in AstValidator 2025-06-16 17:48:21 +00:00
nora
3edb332892
Merge pull request #2471 from Darksonn/patch-1
Use stage 1 for building docs
2025-06-16 19:45:23 +02:00
Manuel Drehwald
7d3a1d49ab make more CodegenCx function generic 2025-06-16 10:36:15 -07:00
Lukas Wirth
cc8cf56178
Merge pull request #20015 from Veykril/push-wsxzsuurqwwr
feat: Insert required parentheses when typing `+` in dyn trait type
2025-06-16 17:13:16 +00:00
Lukas Wirth
a38a9a6262 feat: Insert required parentheses when typing + in trait type 2025-06-16 19:02:18 +02:00
rustbot
7cfc51bd50 Update books 2025-06-16 19:00:49 +02:00
Tomoaki Kobayashi
23e35c6bd3 Add support for repetition to proc_macro::quote 2025-06-17 01:36:54 +09:00
Lukas Wirth
233e1a889d
Merge pull request #20014 from Veykril/push-lsqvxunvnrqw
feat: Show what cargo metadata is doing in status
2025-06-16 16:17:48 +00:00
Guillaume Gomez
2eccf18075 Add comment to prevent having code other than initSearch at the end of search.js 2025-06-16 18:06:28 +02:00
Lukas Wirth
13f5866e96 feat: Show what cargo metadata is doing in status 2025-06-16 18:05:44 +02:00
antoyo
fda0bb9588
Merge pull request #713 from GuillaumeGomez/fix-warnings
Fix fuzz warnings and deny warnings by default in build system
2025-06-16 11:55:20 -04:00
Guillaume Gomez
8392a0041f Make the tempfile version in Cargo.toml matches the one in Cargo.lock 2025-06-16 17:33:03 +02:00
Neal
2fca05a378 Rename BorrowFlag type to BorrowCounter
It's actually used as a counter so update the name to reflect that.
2025-06-16 11:24:38 -04:00
Neal
718df66f4f Two changes: Have BorrowError & BorrowMutError derive Debug and add
more information to Display implementation for BorrowError/BorrowMutError

- The BorrowError/BorrowMutError Debug implementations do not print
anything differently from what the derived implementation does, so we
don't need it.

- This change also adds the location field of
BorrowError/BorrowMutError to the the Display output when it is
present, rewords the error message, and uses the Display trait for
outputting the error message instead of Debug.
2025-06-16 11:24:38 -04:00
Jason Newcomb
af9d56860e
Add lint for broken doc links (#13696)
fixes https://github.com/rust-lang/rust-clippy/issues/2179

changelog: [`doc_broken_link`]: Add pedantic lint to catch broken doc
links that won't produce a link tag by rustdoc.
2025-06-16 15:19:03 +00:00
Pavel Grigorenko
da8d6bbd50 Port #[rustc_as_ptr] to the new attribute system 2025-06-16 18:13:27 +03:00
xizheyin
c63665cd73 Dont suggest converting /// to regular comment when it appears after missing , in list
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-06-16 23:07:11 +08:00
Alice Ryhl
808d16c536
Use stage 1 for building docs 2025-06-16 17:03:33 +02:00
Guillaume Gomez
bbcc84a05d Update tempfile dependency 2025-06-16 17:01:56 +02:00
Guillaume Gomez
fec46a44ba Fix clippy lints 2025-06-16 17:01:56 +02:00
David Wood
c6d88a1892
aux: add {Meta,Pointee}Sized to minicore
Add `MetaSized` and `PointeeSized` to minicore so that fewer tests fail
from missing language items.
2025-06-16 15:00:22 +00:00
David Wood
3b0e1c17d2
trait_sel: {Meta,Pointee}Sized on ?Sized types
Expand the automatic implementation of `MetaSized` and `PointeeSized` so
that it is also implemented on non-`Sized` types, just not `ty::Foreign`
(extern type).
2025-06-16 15:00:22 +00:00
David Wood
d43da6f4de
trait_sel: {Meta,Pointee}Sized on Sized types
Introduce the `MetaSized` and `PointeeSized` traits as supertraits of
`Sized` and initially implement it on everything that currently
implements `Sized` to isolate any changes that simply adding the
traits introduces.
2025-06-16 15:00:22 +00:00
bors
3bc767e1a2 Auto merge of #142574 - Kobzol:rollup-ldj386u, r=Kobzol
Rollup of 12 pull requests

Successful merges:

 - rust-lang/rust#141639 (Expose discriminant values in stable_mir)
 - rust-lang/rust#142082 (Refactor `rustc_attr_data_structures` documentation)
 - rust-lang/rust#142125 (Stabilize "file_lock" feature)
 - rust-lang/rust#142236 (Add documentation for `PathBuf`'s `FromIterator` and `Extend` impls)
 - rust-lang/rust#142373 (Fix Debug for Location)
 - rust-lang/rust#142416 (Assorted bootstrap cleanups (step 2))
 - rust-lang/rust#142431 (Add initial version of snapshot tests to bootstrap)
 - rust-lang/rust#142450 (Add documentation on top of `rustc_middle/src/query/mod.rs`)
 - rust-lang/rust#142528 (clarify `rustc_do_not_const_check` comment)
 - rust-lang/rust#142530 (use `if let` guards where possible)
 - rust-lang/rust#142561 (Remove an `njn:` comment accidentaly left behind.)
 - rust-lang/rust#142566 (Fix `-nopt` CI jobs)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-06-16 14:25:08 +00:00
Camille GILLOT
c4b67c6d87 Reason about borrowed classes in CopyProp. 2025-06-16 14:17:13 +00:00
Guillaume Gomez
46c14b7b3f Run clippy correctly, run it on build_system as well and run it earlier 2025-06-16 16:15:36 +02:00
Camille GILLOT
71afc6f463 Add test. 2025-06-16 14:07:25 +00:00
Guillaume Gomez
05af962fa4 Fix warnings when not using the master feature 2025-06-16 15:07:24 +02:00
Laurențiu Nicola
74e92a8801 Format goto_type_definition 2025-06-16 15:33:48 +03:00
Camille GILLOT
a2d96875a5 Add comment. 2025-06-16 12:31:36 +00:00
Jakub Beránek
78d12b7e56
Rollup merge of #142566 - Kobzol:ci-nopt-fix, r=jieyouxu
Fix `-nopt` CI jobs

They were using `--config` instead of `--set`, which overrides too much stuff after recent changes to config merging.

Should hopefully unblock https://github.com/rust-lang/rust/pull/142447.

r? `@jieyouxu`
2025-06-16 14:31:15 +02:00
Jakub Beránek
f1dd5fb56e
Rollup merge of #142561 - nnethercote:fix-njn-comment, r=chenyukang
Remove an `njn:` comment accidentaly left behind.

r? `@chenyukang`
2025-06-16 14:31:14 +02:00
Jakub Beránek
1a56184460
Rollup merge of #142530 - fee1-dead-contrib:push-klusvwusyqvq, r=compiler-errors
use `if let` guards where possible

these crates already enable the feature
2025-06-16 14:31:14 +02:00
Jakub Beránek
dc16682824
Rollup merge of #142528 - fee1-dead-contrib:push-rlxklunqkwmv, r=RalfJung
clarify `rustc_do_not_const_check` comment

~~Given that we have used this attribute for other reasons before it seems appropriate to make this a "usually".~~

Add function name as a pointer

cc ```@rust-lang/wg-const-eval```
2025-06-16 14:31:13 +02:00
Jakub Beránek
2c4abc0f45
Rollup merge of #142450 - xizheyin:rustc-query-doc, r=SparrowLii
Add documentation on top of `rustc_middle/src/query/mod.rs`

The `rustc-dev-guide` gives a high-level intro, but many details—especially about how the code works and modifiers in `query xxx(){...}`—are only in code comments or the macro implementation. This doc makes it easier for contributors and code readers to understand the workflow and available modifiers without jumping between files and docs.

This PR adds a comprehensive module-level doc comment to `rustc_middle::query::mod.rs` that:
1. Provides an overview of the query system and macro-based query definitions for reading code more easily
2. Centralizes documentation for all query modifiers (previously scattered or only in `rustc_macro` code), closely following the authoritative list in QueryModifiers.
2025-06-16 14:31:12 +02:00