35020 Commits

Author SHA1 Message Date
Guillaume Gomez
42c62678fe
Rollup merge of #142065 - paolobarbolini:stabilize-const_eq_ignore_ascii_case, r=Mark-Simulacrum
Stabilize `const_eq_ignore_ascii_case`

Tracking issue: rust-lang/rust#131719
Closes rust-lang/rust#131719
FCP Completed: https://github.com/rust-lang/rust/issues/131719#issuecomment-2941829167
2025-06-07 22:22:57 +02:00
Guillaume Gomez
bfdb96ea07
Rollup merge of #141661 - Urgau:deny-dangerous_implicit_autorefs, r=traviscross
Make the `dangerous_implicit_autorefs` lint deny-by-default

I intended for the `dangerous_implicit_autorefs` lint to be deny-by-default, the [T-lang nomination comment](https://github.com/rust-lang/rust/pull/123239#issuecomment-2727551097) even clearly mentioned deny-by-default, but somehow I and other missed that it is only warn-by-default.

I think the lint should still be deny-by-default as the implicit aliasing requirements can be quite dangerous.

In any-case, opening this PR for T-lang awareness.

`@rustbot` label +I-lang-nominated +T-lang
r? `@traviscross`
2025-06-07 22:22:57 +02:00
Guillaume Gomez
8a4b23968d
Rollup merge of #141447 - y86-dev:option-layout-docs, r=RalfJung
Document representation of `Option<unsafe fn()>`

https://rust-lang.zulipchat.com/#narrow/channel/136281-t-opsem/topic/Option.20Layout.20with.20.60fn.60.20pointers/with/520055652
2025-06-07 22:22:56 +02:00
Guillaume Gomez
7c8ac0f4ef
Rollup merge of #140560 - Urgau:test_attr-module-level, r=GuillaumeGomez
Allow `#![doc(test(attr(..)))]` everywhere

This PR adds the ability to specify [`#![doc(test(attr(..)))]`](https://doc.rust-lang.org/nightly/rustdoc/write-documentation/the-doc-attribute.html#testattr) ~~at module level~~ everywhere in addition to allowing it at crate-root.

This is motivated by a recent PR #140323 (by ````@tgross35)```` where we have to duplicate 2 attributes to every single `f16` and `f128` doctests, by allowing `#![doc(test(attr(..)))]` at module level (and everywhere else) we can omit them entirely and just have (in both module):

```rust
#![doc(test(attr(feature(cfg_target_has_reliable_f16_f128))))]
#![doc(test(attr(expect(internal_features))))]
```

Those new attributes are appended to the one found at crate-root or at a previous module. Those "global" attributes are compatible with merged doctests (they already were before).

Given the small addition that this is, I'm proposing to insta-stabilize it, but I can feature-gate it if preferred.

Best reviewed commit by commit.

r? ````@GuillaumeGomez````
2025-06-07 22:22:55 +02:00
bors
4e1623e1ad Auto merge of #141950 - oli-obk:big-body-owner-loop, r=compiler-errors
Move coroutine_by_move_body_def_id into the big check_crate body owner loop

This avoids starting a parallel loop in sequence and instead runs all the queries for a specific DefId together.
2025-06-07 20:06:23 +00:00
bors
f7014ef76c Auto merge of #141964 - sayantn:update-stdarch, r=Amanieu
Update stdarch submodule

Updates the stdarch submodule.

## Merged PRs

 - rust-lang/stdarch#1797
 - rust-lang/stdarch#1758
 - rust-lang/stdarch#1798
 - rust-lang/stdarch#1811
 - rust-lang/stdarch#1810
 - rust-lang/stdarch#1807
 - rust-lang/stdarch#1806
 - rust-lang/stdarch#1812
 - rust-lang/stdarch#1795
 - rust-lang/stdarch#1796
 - rust-lang/stdarch#1813
 - rust-lang/stdarch#1816
 - rust-lang/stdarch#1818
 - rust-lang/stdarch#1820
 - rust-lang/stdarch#1819

r? `@Amanieu`
`@rustbot` label T-libs-api

Closes rust-lang/rust#111137
2025-06-07 12:25:59 +00:00
bors
4567c6063e Auto merge of #141917 - petrochenkov:nobinroot, r=jieyouxu
bootstrap: Remove `rustc_snapshot_libdir` from PATH in one more place

Same as https://github.com/rust-lang/rust/pull/141657 but in a different part of the build system, with the same goal of addressing [#t-infra/bootstrap > Build broken in MSYS2 @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Build.20broken.20in.20MSYS2/near/520709527).

It seems to work on windows-{gnu,msvc} and linux-gnu at least.

r? jieyouxu
2025-06-07 09:21:38 +00:00
bors
2965c2bac3 Auto merge of #141910 - Kobzol:new-bors-try-branch-name-doc, r=marcoieni
Fix `create-docs-artifacts.sh` with new bors

The slashes in the branch name (`automation/bors/try`) were causing issues for this script (https://github.com/rust-lang/rust/actions/runs/15391908130/job/43303193243).

r? `@marcoieni`

try-job: `mingw-check*`
2025-06-07 03:21:09 +00:00
bors
dbe094cca6 Auto merge of #141800 - workingjubilee:build-std-with-less-leaf-pointers, r=saethlin
bootstrap: build std sans leaf frame pointers

Sometimes leaf frame-pointers can impact LLVM inlining choices, and that can be a real problem for things like `mul_add`.
2025-06-06 21:21:59 +00:00
bors
4ed388a832 Auto merge of #141774 - oli-obk:naked-fn-queries, r=petrochenkov
Change per-module naked fn checks to happen during typeck instead

cc `@Lokathor` `@Amanieu` `@folkertdev`

just seems nicer this way
2025-06-06 18:22:10 +00:00
bors
e47eed0cd3 Auto merge of #141681 - compiler-errors:fast-path-stalled, r=lcnr
Fast path for stalled obligations on self ty

If we see that the `self` type of a goal is an infer var, then don't try to compute the goal at all, since we know that it'll be forced ambiguous.

This is currently only implemented when there are no opaques in the environment. We could extend it to check that the self type is not related to any already defined opaques via subtyping, but I'll leave that as a follow-up.

---

Also stall coerce and subtype predicates if both of their vars are not resolved to concrete types.

---

~~Also, we don't care if the goal is higher-ranked for the sized and copy/clone fast path.~~ pulling this out into another PR.

r? lcnr
2025-06-06 15:20:21 +00:00
Vincent Esche
1a3feeebc4 Make Semantics<'db, dyn HirDatabase> actually usable 2025-06-06 09:45:34 +02:00
Lukas Wirth
6acff6c1f8
Merge pull request #19908 from rmehri01/rmehri01/diagnostic_attribute_completions
feat: implement attribute completions for diagnostics module
2025-06-06 07:19:13 +00:00
Lukas Wirth
4fd1cdb3e3
Merge pull request #19937 from Veykril/push-rvnylnlnxxyr
fix: Record macro calls for fields in `ChildBySource` impls
2025-06-06 05:45:48 +00:00
Lukas Wirth
cad9cc97e2
Merge pull request #19935 from ChayimFriedman2/exp-diag-show-quickfix
fix: Always include quickfixes for diagnostics, even when diagnostics are disabled
2025-06-06 05:35:52 +00:00
Lukas Wirth
1436449e12
Merge pull request #19936 from ChayimFriedman2/unlinked-file-stable
fix: Stabilize unlinked file diagnostic
2025-06-06 05:35:02 +00:00
Lukas Wirth
8e217cc68a fix: Record macro calls for fields in ChildBySource impls 2025-06-06 07:34:42 +02:00
bors
f7df7def7f Auto merge of #141272 - Shourya742:2025-05-18-modularize-config-module, r=Kobzol
modularize the config module bootstrap

Currently, our `config` module is quite large over 3,000 lines, and handles a wide range of responsibilities. This PR aims to break it down into smaller, more focused submodules to improve readability and maintainability:

* **`toml`**: Introduces a dedicated `toml` submodule within the `config` module. Its sole purpose is to define configuration-related structs along with their corresponding deserialization logic. It also contains the `parse_inner` method, which serves as the central function for extracting relevant information from the TOML structs and constructing the final configuration.

* **`rust`, `dist`, `install`, `llvm`, `build`, `gcc`, and others**: Each of these modules contains TOML subsections specific to their domain, along with the logic necessary to convert them into parts of the final configuration struct.

* **`config/mod.rs`**: Contains shared types and enums used across multiple TOML subsections.

* **`config/config.rs`**: Houses the logic that integrates all the TOML subsections into the complete configuration struct.

r? `@kobzol`
2025-06-06 04:32:56 +00:00
Chayim Refael Friedman
41f5de12bd Stabilize unlinked file diagnostic 2025-06-06 03:55:57 +03:00
Chayim Refael Friedman
869714aae0 Always include quickfixes for diagnostics, even when diagnostics are disabled 2025-06-06 03:52:32 +03:00
bors
707e3cea16 Auto merge of #140872 - bjorn3:elf_use_used_linker, r=nikic
Make #[used(linker)] the default on ELF too

`#[used]` currently is an alias for `#[used(linker)]` on all platforms except ELF based ones where it is an alias for `#[used(compiler)]`. The latter has surprising behavior and the LLVM LangRef explicitly states that it "should only be used in rare circumstances, and should not be exposed to source languages." [^2]

The reason `#[used]` still was an alias to `#[used(compiler)]` on ELF is because the gold linker has issues with it. Luckily gold has been deprecated with GCC 15 [^1] and seems to be unable to bootstrap rustc anyway [^3]. As such we shouldn't really care about supporting gold.

This would also allow re-enabling start-stop-gc with lld.

cc https://github.com/rust-lang/rust/issues/93798
Likely fixes https://github.com/rust-lang/rust/issues/85045

[^1]: https://lists.gnu.org/archive/html/info-gnu/2025-02/msg00001.html
[^2]: https://llvm.org/docs/LangRef.html#the-llvm-compiler-used-global-variable
[^3]: https://github.com/rust-lang/rust/issues/139425
2025-06-05 22:52:17 +00:00
bors
2d0b38e79e Auto merge of #138677 - shepmaster:consistent-elided-lifetime-syntax, r=traviscross,jieyouxu
Add a new `mismatched-lifetime-syntaxes` lint

The lang-team [discussed this](https://hackmd.io/nf4ZUYd7Rp6rq-1svJZSaQ) and I attempted to [summarize](https://github.com/rust-lang/rust/pull/120808#issuecomment-2701863833) their decision. The summary-of-the-summary is:

- Using two different kinds of syntax for elided lifetimes is confusing. In rare cases, it may even [lead to unsound code](https://github.com/rust-lang/rust/issues/48686)! Some examples:

    ```rust
    // Lint will warn about these
    fn(v: ContainsLifetime) -> ContainsLifetime<'_>;
    fn(&'static u8) -> &u8;
    ```

- Matching up references with no lifetime syntax, references with anonymous lifetime syntax, and paths with anonymous lifetime syntax is an exception to the simplest possible rule:

    ```rust
    // Lint will not warn about these
    fn(&u8) -> &'_ u8;
    fn(&'_ u8) -> &u8;
    fn(&u8) -> ContainsLifetime<'_>;
    ```

- Having a lint for consistent syntax of elided lifetimes will make the [future goal](https://github.com/rust-lang/rust/issues/91639) of warning-by-default for paths participating in elision much simpler.

---

This new lint attempts to accomplish the goal of enforcing consistent syntax. In the process, it supersedes and replaces the existing `elided-named-lifetimes` lint, which means it starts out life as warn-by-default.
2025-06-05 19:49:30 +00:00
Lukas Wirth
d5665e5ca7
Merge pull request #19933 from Veykril/push-uyxorpyvnzsl
Better parser recovery for macro calls in type bound position
2025-06-05 14:23:04 +00:00
Lukas Wirth
5d3001795a Better parser recovery for macro calls in type bound position 2025-06-05 16:11:30 +02:00
Lukas Wirth
ba4b9f6d51
Merge pull request #19932 from Veykril/push-skzlyntpxpsw
fix: Record macro calls in signatures in `ChildBySource` impls
2025-06-05 13:15:29 +00:00
Lukas Wirth
bb5e6deff5 fix: Record macro calls in signatures in ChildBySource impls 2025-06-05 15:04:50 +02:00
Paolo Barbolini
69f077653a Stabilize const_eq_ignore_ascii_case 2025-06-05 07:09:16 +00:00
Lukas Wirth
634596e2d7
Merge pull request #19928 from Veykril/push-kznpuqllrvvq
Deduplicate code in proc-macro-srv
2025-06-05 05:36:01 +00:00
bors
d04f21f2b1 Auto merge of #140466 - amandasystems:move-to-preprocessing-step, r=lcnr
Move placeholder handling to a proper preprocessing step

This commit breaks out the logic of placheolder rewriting into its own preprocessing step. It's one of the more boring
parts of #130227.

The only functional change from this is that the preprocessing step (where extra `r: 'static` constraints are added) is performed upstream of Polonius legacy, finally affecting Polonius. That is mostly a by-product, though.

This should be reviewable by anyone in the compiler team, so
r? rust-lang/compiler
2025-06-05 05:27:41 +00:00
Lukas Wirth
02a788bfaa Deduplicate code in proc-macro-srv 2025-06-05 07:25:15 +02:00
Ryan Mehri
b95101ce46 add qualifiers to attribute completions 2025-06-04 11:02:48 -04:00
Ryan Mehri
f1cc7c5c92 match on segments of path and some small cleanup 2025-06-04 08:30:27 -04:00
Lukas Wirth
55b733103e
Merge pull request #19905 from Veykril/push-unwwyqpwqxky
refactor: Cleanup descension stuff
2025-06-04 10:42:38 +00:00
Lukas Wirth
b94e766791 refactor: Cleanup descension stuff 2025-06-04 12:32:02 +02:00
Lukas Wirth
2dc5aa885a
Merge pull request #19922 from Veykril/push-oxyomxrsplpx
feat: Add `dyn` keyword inlay hints
2025-06-04 09:51:22 +00:00
Lukas Wirth
b9733810bb feat: Add dyn keyword inlay hints 2025-06-04 11:40:05 +02:00
Lukas Wirth
7c3de05e3a Give path segment type anchors their own grammar rule 2025-06-04 11:40:05 +02:00
Lukas Wirth
d2164fe08b Remove unnecessary parameters in inlay-hint computation 2025-06-04 11:31:45 +02:00
Oli Scherer
326bf269af
Merge pull request #4372 from nia-e/multiple-native-libs
native-lib: allow multiple libraries and/or dirs
2025-06-04 09:19:54 +00:00
Laurențiu Nicola
789d9153e4
Merge pull request #19913 from rust-lang/dependabot/npm_and_yarn/editors/code/tar-fs-2.1.3
chore(deps): bump tar-fs from 2.1.2 to 2.1.3 in /editors/code
2025-06-04 07:18:49 +00:00
Lukas Wirth
d574b1b0d9
Merge pull request #19914 from davidbarsky/davidbarsky/add-some-additional-incrementalism-tests
hir-ty: add incremental tests checking for `infer` invalidation
2025-06-04 07:15:18 +00:00
Laurențiu Nicola
59c1cc48a1
Merge pull request #19921 from ShoyuVanilla/ci-retry
ci: Pin `cargo-workspaces` version to `0.3.6`, again
2025-06-04 07:14:11 +00:00
Shoyu Vanilla
737b878355 ci: Pin cargo-workspaces version to 0.3.6, again 2025-06-04 16:03:00 +09:00
Ralf Jung
7088b4397f
Merge pull request #4375 from rust-lang/rustup-2025-06-04
Automatic Rustup
2025-06-04 06:36:37 +00:00
Laurențiu Nicola
134889edea
Merge pull request #19920 from ShoyuVanilla/patch-2
fix: Typo mistake in CI
2025-06-04 06:34:25 +00:00
Shoyu Vanilla (Flint)
51b9c872fa fix: Typo mistake in autopublish workflow 2025-06-04 15:13:44 +09:00
Laurențiu Nicola
0c1272dcbb
Merge pull request #19919 from ShoyuVanilla/patch-1
ci: When autopublishing, remove `xtask` from workspace
2025-06-04 05:29:49 +00:00
Shoyu Vanilla (Flint)
4b5d321e17 ci: When autopublishing, remove xtask from workspace
Revert `cargo-workspaces` version fix
2025-06-04 14:19:18 +09:00
The Miri Cronjob Bot
3649512d11 Merge from rustc 2025-06-04 05:02:17 +00:00
Laurențiu Nicola
9f18f5468d
Merge pull request #19915 from ShoyuVanilla/publish-libs-crash
ci: Pin `cargo-workspaces` to `0.3.6`
2025-06-04 04:26:10 +00:00