about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2025-06-06Add new Tier-3 targets: `loongarch32-unknown-none*`WANG Rui-15/+44
MCP: https://github.com/rust-lang/compiler-team/issues/865
2025-06-06Rollup merge of #142092 - fmease:rustdoc-alias-terms, r=GuillaumeGomezMatthias Krüger-131/+106
rustdoc: Support middle::ty associated const equality predicates again Fix intentional regression from PR rust-lang/rust#125076. Fixes rust-lang/rust#125092. Fixes rust-lang/rust#134775. CC rust-lang/rust#141368 (`EqPredicates` and rustdoc).
2025-06-06Rollup merge of #142012 - oli-obk:no-optional-spans, r=fee1-deadMatthias Krüger-3/+3
Replace some `Option<Span>` with `Span` and use DUMMY_SP instead of None Turns out many locations actually have a span available that we could use, so I used it
2025-06-05Auto merge of #138677 - shepmaster:consistent-elided-lifetime-syntax, ↵bors-47/+56
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-05Support middle::ty assoc const eq predicates againLeón Orell Valerian Liehr-118/+92
2025-06-05Rename `should_show_cast` to `should_fully_qualify`León Orell Valerian Liehr-15/+16
2025-06-05Auto merge of #142081 - matthiaskrgr:rollup-secpezz, r=matthiaskrgrbors-241/+256
Rollup of 7 pull requests Successful merges: - rust-lang/rust#141709 (jsondocck: Refactor directive handling) - rust-lang/rust#141974 (`tests/ui`: A New Order [4/N]) - rust-lang/rust#141989 (rustdoc-json-type: Depend on `serde` and `serde_derive` seperately) - rust-lang/rust#142015 (Report the actual item that evaluation failed for) - rust-lang/rust#142026 (bootstrap: Fix file permissions when dereferencing symlinks) - rust-lang/rust#142032 (Fix parsing of frontmatters with inner hyphens) - rust-lang/rust#142036 (Update the `compiler-builtins` subtree) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-05Merge pull request #19933 from Veykril/push-uyxorpyvnzslLukas Wirth-10/+134
Better parser recovery for macro calls in type bound position
2025-06-05change tests to use fixed constants to let them pass with miriLorrensP-2158466-1/+3
2025-06-05Replace some `Option<Span>` with `Span` and use DUMMY_SP instead of NoneOli Scherer-3/+3
2025-06-05Better parser recovery for macro calls in type bound positionLukas Wirth-10/+134
2025-06-05Rollup merge of #142026 - smpdt:master, r=KobzolMatthias Krüger-1/+2
bootstrap: Fix file permissions when dereferencing symlinks ## Problem When copying files in the bootstrap process with `dereference_symlinks = true`, we're incorrectly using the symlink's metadata to set permissions on the copied regular file, which results in the following error: ``` Warning: Failed to set file times for "/build/nix-build-rustc-1.86.0.drv-0/rustc-1.86.0-src/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-strip" (permissions: Permissions(FilePermissions { mode: 0o100000 (----------) })) error: Permission denied (os error 13) ``` Verbose Logs confirming the error: ``` TRACE: Found llvm-strip copy operation Source: /n/nix/tech/store/n34yzv2n50p6lbjmx089vjym121wbl4j-llvm-19.1.7/bin/llvm-strip Destination: /build/nix-build-rustc-1.86.0.drv-0/rustc-1.86.0-src/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-strip Source is_symlink (via symlink_metadata): true Source symlink_metadata permissions: 120000 Source symlink_metadata file_type: FileType { is_file: false, is_dir: false, is_symlink: true, .. } Source is symlink pointing to: llvm-objcopy Source raw mode: 120000 Source filetype: 120000 Setting permissions: Permissions(FilePermissions { mode: 0o120000 (l---------) }) Permission mode to set: 120000 Raw permission bits: 120000 File type bits being set: 120000 Permission bits being set: 0 WARNING: Attempting to set symlink file type (120000) on regular file! WARNING: Setting zero permission bits will make file inaccessible! Destination permissions after set_permissions: 100000 ``` ## Solution After canonicalizing a symlink path, fetch the metadata of the target file instead of continuing to use the symlink's metadata. This ensures: - Correct file type detection - Proper permission bits for the target file - Maintains existing behavior for non-symlink cases ## Testing Verified fix resolves permission errors: ``` rustc> llvm-strip: Original metadata mode: 120000, is_symlink: true rustc> llvm-strip: Target metadata mode after fix: 100555 rustc> llvm-strip: Final permissions mode: 100555 ```
2025-06-05Rollup merge of #141989 - aDotInTheVoid:sin-sooner, r=GuillaumeGomezMatthias Krüger-2/+3
rustdoc-json-type: Depend on `serde` and `serde_derive` seperately Before this commit, serde_derive is built before serde. But serde does not depend on serde_derive, so that is not needed. Instead, build serde and serde_derive in parallel. This speeds up compilation for users depending on rustdoc-json-types out of tree. Imports: https://github.com/rust-lang/rustdoc-types/pull/49 CC ``@Enselic`` r? ``@GuillaumeGomez``
2025-06-05Rollup merge of #141709 - aDotInTheVoid:split-for-docs, r=GuillaumeGomezMatthias Krüger-238/+251
jsondocck: Refactor directive handling Best reviewed commit by commit. 1. Moves directive handling into its own file. This makes it easier to link to in the dev-guide (https://github.com/rust-lang/rustc-dev-guide/pull/2422#discussion_r2112724234), but also makes the code nicer in it's own right 2. Renames command to directive. This is what compiletest uses, and it's nice to not have 2 words for this. r? ``@GuillaumeGomez``
2025-06-05fix: Record macro calls in signatures in `ChildBySource` implsLukas Wirth-19/+77
2025-06-05jsondocck: Explain what `KNOWN_DIRECTIVE_NAMES` is doingAlona Enraght-Moony-1/+1
2025-06-05Check documentation of bootstrap in PR CIJakub Beránek-0/+1
2025-06-05correct the imports in flags, tests and downloadbit-aloo-5/+8
2025-06-05Rollup merge of #141970 - onur-ozkan:skip-stage1-std, r=KobzolMatthias Krüger-48/+217
implement new `x` flag: `--skip-std-check-if-no-download-rustc` One of our developers (``@RalfJung)`` [reported](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Surprising.20stages.20for.20check.20build.20after.20stage.20reorg/with/521925606)[#t-infra/bootstrap > Surprising stages for check build after stage reorg](https://rust-lang.zulipchat.com/#narrow/channel/326414-t-infra.2Fbootstrap/topic/Surprising.20stages.20for.20check.20build.20after.20stage.20reorg/with/521925606) that working on both the compiler and the library simultaneously with RA enabled is extremely difficult because checking library creates a heavy load on machines (by building stage1 compiler) on each modification. `--skip-std-check-if-no-download-rustc` flag is intended to reduce this heavy load on their IDE integration as much as possible. Fixes: rust-lang/rust#141955
2025-06-05Rollup merge of #141962 - BoxyUwU:rdg-push, r=jieyouxuMatthias Krüger-15/+35
rustc-dev-guide subtree update r? ``@jieyouxu``
2025-06-05Rollup merge of #141938 - ZuseZ4:offload-updates, r=KobzolMatthias Krüger-6/+9
update rust offload bootstrap r? ``@ghost``
2025-06-05Rollup merge of #141777 - Kobzol:dist-linux-alt-no-pgo-bolt, r=marcoieniMatthias Krüger-17/+45
Do not run PGO/BOLT in x64 Linux alt builds Should unblock https://github.com/rust-lang/rust/pull/131077 and also reduce our CI costs. It seems to run ~1.5h on the x64 larger runner (free runner runs out of disk space, sadly). Discussed [here](https://rust-lang.zulipchat.com/#narrow/channel/131828-t-compiler/topic/Utility.20of.20the.20.60dist-x86_64-linux-alt.60.20job/with/521324477). r? ``@marcoieni`` try-job: `dist-x86_64-linux*`
2025-06-05Rollup merge of #140638 - RalfJung:unsafe-pinned-shared-aliased, ↵Matthias Krüger-0/+131
r=workingjubilee UnsafePinned: also include the effects of UnsafeCell This tackles https://github.com/rust-lang/rust/issues/137750 by including an `UnsafeCell` in `UnsafePinned`, thus imbuing it with all the usual properties of interior mutability (no `noalias` nor `dereferenceable` on shared refs, special treatment by Miri's aliasing model). The soundness issue is not fixed yet because coroutine lowering does not use `UnsafePinned`. The RFC said that `UnsafePinned` would not permit mutability on shared references, but since then, https://github.com/rust-lang/rust/issues/137750 has demonstrated that this is not tenable. In the face of those examples, I propose that we do the "obvious" thing and permit shared mutable state inside `UnsafePinned`. This seems loosely consistent with the fact that we allow going from `Pin<&mut T>` to `&T` (where the former can be aliased with other pointers that perform mutation, and hence the same goes for the latter) -- but the `as_ref` example shows that we in fact would need to add this `UnsafeCell` even if we didn't have a safe conversion to `&T`, since for the compiler and Miri, `&T` and `Pin<&T>` are basically the same type. To make this possible, I had to remove the `Copy` and `Clone` impls for `UnsafePinned`. Tracking issue: https://github.com/rust-lang/rust/issues/125735 Cc ``@rust-lang/lang`` ``@rust-lang/opsem`` ``@Sky9x`` I don't think this needs FCP since the type is still unstable -- we'll finally decide whether we like this approach when `UnsafePinned` is moved towards stabilization (IOW, this PR is reversible). However, I'd still like to make sure that the lang team is okay with the direction I am proposing here.
2025-06-05Stabilize `const_eq_ignore_ascii_case`Paolo Barbolini-14/+0
2025-06-05Merge pull request #19928 from Veykril/push-kznpuqllrvvqLukas Wirth-297/+160
Deduplicate code in proc-macro-srv
2025-06-05Deduplicate code in proc-macro-srvLukas Wirth-297/+160
2025-06-05Merge from rustcThe Miri Cronjob Bot-334/+336
2025-06-05Preparing for merge from rustcThe Miri Cronjob Bot-1/+1
2025-06-05feat: ide-assist, generate single field struct FromA4-Tacks-6/+1043
2025-06-05Auto merge of #142033 - matthiaskrgr:rollup-99lvg0j, r=matthiaskrgrbors-118/+4
Rollup of 11 pull requests Successful merges: - rust-lang/rust#141890 (Add link to correct documentation in htmldocck.py) - rust-lang/rust#141932 (Fix for async drop inside async gen fn) - rust-lang/rust#141960 (Use non-2015 edition paths in tests that do not test for their resolution) - rust-lang/rust#141968 (Run wfcheck in one big loop instead of per module) - rust-lang/rust#141969 (Triagebot: Remove `assign.users_on_vacation`) - rust-lang/rust#141985 (Ensure query keys are printed with reduced queries) - rust-lang/rust#141999 (Visit the ident in `PreciseCapturingNonLifetimeArg`.) - rust-lang/rust#142005 (Change `tag_field` to `FieldIdx` in `Variants::Multiple`) - rust-lang/rust#142017 (Fix incorrect use of "recommend" over "recommended") - rust-lang/rust#142024 (Don't refer to 'this tail expression' in expansion.) - rust-lang/rust#142025 (Don't refer to 'local binding' in extern macro.) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-04Rollup merge of #142017 - ↵Matthias Krüger-1/+1
Rageking8:fix-incorrect-use-of-recommend-over-recommended, r=lqd Fix incorrect use of "recommend" over "recommended" Spotted this typo in rust-lang/rust#141554, but it has since been merged. r? `@Noratrieb`
2025-06-04Rollup merge of #141968 - oli-obk:wfck-everything-at-once, r=wesleywiserMatthias Krüger-3/+1
Run wfcheck in one big loop instead of per module Maybe we can merge this big loop in the future with the `par_hir_body_owners` call below and run typeck only on items that didn't fail wfcheck. For now let's just see if perf likes it, as it by itself should be beneficial to parallel rustc
2025-06-04Rollup merge of #141890 - Derukugis:master, r=fmeaseMatthias Krüger-114/+2
Add link to correct documentation in htmldocck.py
2025-06-04Auto merge of #142028 - matthiaskrgr:rollup-rawl1zo, r=matthiaskrgrbors-1/+3
Rollup of 7 pull requests Successful merges: - rust-lang/rust#141271 (Streamline some attr parsing APIs) - rust-lang/rust#141570 (Fix incorrect eq_unspanned in TokenStream) - rust-lang/rust#141893 (remove `f16: From<u16>`) - rust-lang/rust#141924 (Lightly tweak docs for BTree{Map,Set}::extract_if) - rust-lang/rust#141939 (exact_div: add tests) - rust-lang/rust#141959 (Add more missing 2015 edition directives) - rust-lang/rust#142007 (Improve some `Visitor` comments.) r? `@ghost` `@rustbot` modify labels: rollup
2025-06-04add qualifiers to attribute completionsRyan Mehri-14/+30
2025-06-04Replace `elided_named_lifetimes` with `mismatched_lifetime_syntaxes`Jake Goulding-45/+54
2025-06-04Introduce the `mismatched_lifetime_syntaxes` lintJake Goulding-2/+2
2025-06-04Rollup merge of #141570 - chenyukang:yukang-fix-eq_unspanned, r=workingjubileeMatthias Krüger-1/+3
Fix incorrect eq_unspanned in TokenStream Fixes rust-lang/rust#141522 r? ``@workingjubilee`` should we remove this function? since it's used in several places, i'd prefer to keep it.
2025-06-04Auto merge of #142002 - onur-ozkan:follow-ups2, r=jieyouxubors-26/+26
redesign stage 0 std follow-ups part2 Fixes three bugs: 1. `x check` fails when run on rustdoc without `download-rustc` enabled. (1st commit) 2. `x check` fails when run on the compiler with `download-rustc` enabled. (2nd commit) 3. `x test library` fails with `download-rustc` enabled. (3rd commit) Fixes rust-lang/rust#142018 (case 1) Fixes https://github.com/rust-lang/rust/issues/141983 (case 3)
2025-06-04bootstrap: Fix file permissions when dereferencing symlinkssmpdt-1/+2
2025-06-04triagebot: avoid unnecessary line break in PR welcome messageJieyou Xu-2/+2
2025-06-04match on segments of path and some small cleanupRyan Mehri-23/+14
2025-06-04update `skip_std_check_if_no_download_rustc` doc-commentsonur-ozkan-140/+144
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-06-04document `skip-std-check-if-no-download-rustc` in rustc-dev-guideonur-ozkan-0/+8
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-06-04refactor: Cleanup descension stuffLukas Wirth-35/+46
2025-06-04Add link to correct documentation in htmldocck.pyDerukugi-114/+2
Fix typo in src/etc/htmldocck.py Co-authored-by: León Orell Valerian Liehr <me@fmease.dev> Change documentation link to the correct section in src/etc/htmldocck.py Co-authored-by: León Orell Valerian Liehr <me@fmease.dev> Remove all top-level docs from htmldocck.py
2025-06-04Merge pull request #19922 from Veykril/push-oxyomxrsplpxLukas Wirth-217/+405
feat: Add `dyn` keyword inlay hints
2025-06-04feat: Add `dyn` keyword inlay hintsLukas Wirth-2/+142
2025-06-04Give path segment type anchors their own grammar ruleLukas Wirth-158/+223
2025-06-04Remove unnecessary parameters in inlay-hint computationLukas Wirth-58/+41