about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-07-18Deduplicate `unmatched_delims` in `rustc_parse` to reduce confusionxizheyin-84/+62
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-07-07Add ui test unnessary-error-issue-138401.rsxizheyin-0/+26
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
2025-07-07Auto merge of #143556 - jhpratt:rollup-nid39y2, r=jhprattbors-272/+405
Rollup of 9 pull requests Successful merges: - rust-lang/rust#143206 (Align attr fixes) - rust-lang/rust#143236 (Stabilize `mixed_integer_ops_unsigned_sub`) - rust-lang/rust#143344 (Port `#[path]` to the new attribute parsing infrastructure ) - rust-lang/rust#143359 (Link to 2024 edition page for `!` fallback changes) - rust-lang/rust#143456 (mbe: Change `unused_macro_rules` to a `DenseBitSet`) - rust-lang/rust#143529 (Renamed retain_mut to retain on LinkedList as mentioned in the ACP) - rust-lang/rust#143535 (Remove duplicate word) - rust-lang/rust#143544 (compiler: rename BareFn to FnPtr) - rust-lang/rust#143552 (lib: more eagerly return `self.len()` from `ceil_char_boundary`) r? `@ghost` `@rustbot` modify labels: rollup
2025-07-07Rollup merge of #143552 - nagisa:makes-ceil-char-boundary-go-zoom, r=jhprattJacob Pratt-1/+1
lib: more eagerly return `self.len()` from `ceil_char_boundary` There is no reason to go through the complicated branch as it would always return `self.len()` in this case. Also helps debug code somewhat and I guess might make optimizations easier (although I haven't really a sample to demonstrate this.) ref. https://github.com/rust-lang/rust/issues/93743 Suggested by `@chrisduerr`
2025-07-07Rollup merge of #143544 - workingjubilee:rename-bare-fn, r=fmeaseJacob Pratt-120/+114
compiler: rename BareFn to FnPtr At some point "BareFn" was the chosen name for a "bare" function, without the niceties of `~fn`, `&fn`, or a few other ways of writing a function type. However, at some point the syntax for a "bare function" and any other function diverged even more. We started calling them what they are: function pointers, denoted by their own syntax. However, we never changed the *internal* name for these, as this divergence was very gradual. Personally, I have repeatedly searched for "FnPtr" and gotten confused until I find the name is BareFn, only to forget this until the next time, since I don't routinely interact with the higher-level AST and HIR. But even tools that interact with these internal types only touch on them in a few places, making a migration easy enough. Let's use a more intuitive and obvious name, as this 12+ year old name has little to do with current Rust.
2025-07-07Rollup merge of #143535 - reallesee:patch-1, r=jdonszelmannJacob Pratt-1/+1
Remove duplicate word Deleted a duplicated word to improve text clarity. contains contains - contains
2025-07-07Rollup merge of #143529 - pixel27:master, r=jhprattJacob Pratt-37/+2
Renamed retain_mut to retain on LinkedList as mentioned in the ACP This is for proposal: https://github.com/rust-lang/libs-team/issues/250 The original check-in (https://github.com/rust-lang/rust/pull/114136) contained both methods **retain** and **retain_mut**, which does not conform to https://github.com/rust-lang/libs-team/issues/250#issuecomment-1766822671. I updated the retain documentation to specify **&mut e**, removed the **retain** method and renamed **retain_mut** to **retain** to conform to the request. The pull request doesn't really contain much that is new, just removes the unwanted method to meet the requirements. I've run the tests "library/alloc" on the code and no issues. Hopefully I'm not stepping on the original author's toes. I just ran across a need for the method and wondered why it was unstable.
2025-07-07Rollup merge of #143456 - joshtriplett:mbe-unused-rules-bitset, r=lqdJacob Pratt-6/+9
mbe: Change `unused_macro_rules` to a `DenseBitSet` Now that it only contains indexes, and no other information, a bitset provides a more compact and simpler representation. This builds on <https://github.com/rust-lang/rust/pull/143416>. Only the last commit is new.
2025-07-07Rollup merge of #143359 - clubby789:fallback-2024-doc, r=ibraheemdevJacob Pratt-5/+3
Link to 2024 edition page for `!` fallback changes Closes rust-lang/rust#143207
2025-07-07Rollup merge of #143344 - JonathanBrouwer:path-parser, r=jdonszelmannJacob Pratt-72/+123
Port `#[path]` to the new attribute parsing infrastructure Ports `#[path]` to the new attribute parsing infrastructure for https://github.com/rust-lang/rust/issues/131229#issuecomment-2971353197 This PR duplicates a change from https://github.com/rust-lang/rust/pull/143237 Draft until that one is merged
2025-07-07Rollup merge of #143236 - nxsaken:mixed_integer_ops_unsigned_sub, r=ibraheemdevJacob Pratt-8/+8
Stabilize `mixed_integer_ops_unsigned_sub` Closes rust-lang/rust#126043.
2025-07-07Rollup merge of #143206 - Jules-Bertholet:align-attr-fixes, r=workingjubileeJacob Pratt-22/+144
Align attr fixes - Remove references to the superseded `repr(align)` syntax - Allow the attribute on fn items in `extern` blocks - Test attribute in combination with `async fn` and `dyn` r? workingjubilee Tracking issue: https://github.com/rust-lang/rust/issues/82232 `@rustbot` label A-attributes F-fn_align T-compiler
2025-07-07lib: more eagerly return `self.len()` from `ceil_char_boundary`Simonas Kazlauskas-1/+1
There is no reason to go through the complicated branch as it would always return `self.len()` in this case. Also helps debug code somewhat and I guess might make optimizations easier (although I haven't really a sample to demonstrate this.) ref. #93743 Suggested by @chrisduerr
2025-07-06Auto merge of #141829 - dvdsk:sleep_until_linux, r=cuviper,RalfJungbors-25/+411
Specialize sleep_until implementation for unix (except mac) related tracking issue: https://github.com/rust-lang/rust/issues/113752 Supersedes https://github.com/rust-lang/rust/pull/118480 for the reasons see: https://github.com/rust-lang/rust/issues/113752#issuecomment-2902594469 Replaces the generic catch all implementation with target_os specific ones for: linux/netbsd/freebsd/android/solaris/illumos etc. Other platforms like wasi, macos/ios/tvos/watchos and windows will follow in later separate PR's (once this is merged).
2025-07-06Skip `align` tests on wasmJules Bertholet-6/+9
2025-07-06rustfmt: migrate BareFn -> FnPtrJubilee Young-9/+9
2025-07-06clippy: migrate BareFn -> FnPtrJubilee Young-17/+17
2025-07-06rustdoc: migrate BareFn -> FnPtrJubilee Young-2/+2
2025-07-06compiler: rename {ast,hir}::BareFn* to FnPtr*Jubilee Young-92/+86
Fix some comments and related types and locals where it is obvious, e.g. - bare_fn -> fn_ptr - LifetimeBinderKind::BareFnType -> LifetimeBinderKind::FnPtrType Co-authored-by: León Orell Valerian Liehr <me@fmease.dev>
2025-07-06Add more tests for invalid alignmentsJules Bertholet-5/+52
2025-07-06Add FIXME for gen et alJules Bertholet-0/+1
2025-07-06Add test for `dyn` alignmentJules Bertholet-0/+15
2025-07-06Test `async fn`Jules Bertholet-0/+7
2025-07-06Support `#[align(…)]` on fns in `extern` blocksJules Bertholet-1/+15
2025-07-06Remove `repr(align)` codeJules Bertholet-14/+49
2025-07-06Port `#[path]` to the new attribute parsing infrastructureJonathan Brouwer-36/+88
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-06Move check for new attribute to `check_builtin_meta_item`Jonathan Brouwer-36/+35
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-06Auto merge of #143509 - cjgillot:copy-prop-noborrow, r=tmiaskobors-283/+832
Do not unify borrowed locals in CopyProp. Instead of trying yet another scheme to unify borrowed locals in CopyProp, let's just stop trying. We had already enough miscompilations because of this. I'm convinced it's possible to have both unification of some borrowed locals and soundness, but I don't have a simple and convincing formulation yet. Fixes https://github.com/rust-lang/rust/issues/143491
2025-07-06mbe: Change `unused_macro_rules` to a `DenseBitSet`Josh Triplett-6/+9
Now that it only contains indexes, and no other information, a bitset provides a more compact and simpler representation.
2025-07-06Remove duplicate wordMicke-1/+1
2025-07-06Auto merge of #143526 - matthiaskrgr:rollup-pm69g5v, r=matthiaskrgrbors-216/+228
Rollup of 4 pull requests Successful merges: - rust-lang/rust#143252 (Rewrite empty attribute lint for new attribute parser) - rust-lang/rust#143492 (Use `object` crate from crates.io to fix windows build error) - rust-lang/rust#143514 (Organize macro tests a bit more) - rust-lang/rust#143518 (rustc_builtin_macros: Make sure registered attributes stay sorted) r? `@ghost` `@rustbot` modify labels: rollup
2025-07-06Do not optimize stable-mir ui tests.Camille GILLOT-189/+472
2025-07-06sleep_until: add clock_nanosleep support to Miridvdsk-0/+193
The clock_nanosleep support is there to allow code using `sleep_until` to run under Miri. Therefore the implementation is minimal. - Only the clocks REALTIME and MONOTONIC are supported. The first is supported simply because it was trivial to add not because it was needed for sleep_until. - The only supported flag combinations are no flags or TIMER_ABSTIME only. If an unsupported flag combination or clock is passed in this throws unsupported.
2025-07-06sleep_until: use clock_nanosleep where possibledvdsk-25/+218
Using clock nanosleep leads to more accurate sleep times on platforms where it is supported. To enable using clock_nanosleep this makes `sleep_until` platform specific. That unfortunatly requires identical placeholder implementations for the other platforms (windows/mac/wasm etc). we will land platform specific implementations for those later. See the `sleep_until` tracking issue. This requires an accessors for the Instant type. As that accessor is only used on the platforms that have clock_nanosleep it is marked as allow_unused. 32bit time_t targets do not use clock_nanosleep atm, they instead rely on the same placeholder as the other platforms. We could make them use clock_nanosleep too in the future using `__clock_nanosleep_time64`. __clock_nanosleep_time64 is documented at: https://www.gnu.org/software/libc/manual/html_node/64_002dbit-time-symbol-handling.html
2025-07-06Renamed retain_mut to retain on LinkedList as mentioned in the ACPJoshua Gentry-37/+2
2025-07-06Rollup merge of #143518 - joshtriplett:sort-attrs, r=KobzolMatthias Krüger-0/+2
rustc_builtin_macros: Make sure registered attributes stay sorted As with the list of builtin macros, use tidy to make sure the list of builtin attributes stays sorted.
2025-07-06Rollup merge of #143514 - joshtriplett:macro-test-organization, r=jieyouxuMatthias Krüger-11/+11
Organize macro tests a bit more - Move some macro parsing tests from `tests/ui/parser` to `tests/ui/parser/macro`. - Most macro tests use `macro` in the name, making it easy to find and run tests relevant to macros. However, a few use `mbe` instead. Rename those to say `macro`.
2025-07-06Rollup merge of #143492 - Diggsey:db-fix-object-ambiguity, r=RalfJungMatthias Krüger-6/+14
Use `object` crate from crates.io to fix windows build error See https://rust-lang.zulipchat.com/#narrow/channel/386786-rustc-codegen-gcc/topic/Cannot.20compile.20rustc.20on.20Windows.2010/with/527240094
2025-07-06Rollup merge of #143252 - JonathanBrouwer:rewrite_empty_attribute, ↵Matthias Krüger-199/+201
r=jdonszelmann Rewrite empty attribute lint for new attribute parser cc `@jdonszelmann`
2025-07-06Auto merge of #143515 - rust-lang:cargo_update, r=clubby789bors-12/+27
Weekly `cargo update` Automation to keep dependencies in `Cargo.lock` current. r? dep-bumps The following is the output from `cargo update`: ```txt compiler & tools dependencies: Locking 6 packages to latest compatible versions Adding io-uring v0.7.8 Updating jsonpath-rust v1.0.2 -> v1.0.3 Updating libffi v4.1.0 -> v4.1.1 Updating libffi-sys v3.3.1 -> v3.3.2 Updating tokio v1.45.1 -> v1.46.1 Updating wasm-component-ld v0.5.14 -> v0.5.15 note: pass `--verbose` to see 41 unchanged dependencies behind latest library dependencies: Locking 0 packages to latest compatible versions note: pass `--verbose` to see 4 unchanged dependencies behind latest rustbook dependencies: Locking 1 package to latest compatible version Updating cc v1.2.27 -> v1.2.29 ```
2025-07-06Auto merge of #143521 - matthiaskrgr:rollup-kpv1og3, r=matthiaskrgrbors-179/+350
Rollup of 6 pull requests Successful merges: - rust-lang/rust#143416 (mbe: Defer checks for `compile_error!` until reporting an unused macro rule) - rust-lang/rust#143470 (std: sys: net: uefi: tcp4: Implement read) - rust-lang/rust#143477 (use `is_multiple_of` and `div_ceil`) - rust-lang/rust#143484 (distinguish the duplicate item of rpitit) - rust-lang/rust#143493 (tidy: use --bless for tidy spellcheck instead of spellcheck:fix) - rust-lang/rust#143504 (compiletest: print slightly more information on fs::write failure) r? `@ghost` `@rustbot` modify labels: rollup
2025-07-06Do not unify borrowed locals in CopyProp.Camille GILLOT-94/+360
2025-07-06Rollup merge of #143504 - RalfJung:compiletest-err, r=jieyouxuMatthias Krüger-1/+2
compiletest: print slightly more information on fs::write failure See [#t-infra > compiletest: panic in dump_output_file: No such file or dire @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/compiletest.3A.20panic.20in.20dump_output_file.3A.20No.20such.20file.20or.20dire/near/527294714)
2025-07-06Rollup merge of #143493 - lolbinarycat:tidy-spellcheck-bless, r=KobzolMatthias Krüger-6/+17
tidy: use --bless for tidy spellcheck instead of spellcheck:fix previous behavior was inconsistent with existing extra checks. unsure if this needs a change tracker entry or a warning for people who try to use the old behavior. unsure if we should call this `spellcheck:lint` for consistency. making this consistent is a prerequisite for https://github.com/rust-lang/rust/pull/143398 cc `@nnethercote` r? `@Kobzol`
2025-07-06Rollup merge of #143484 - bvanjoi:issue-140796, r=compiler-errorsMatthias Krüger-2/+112
distinguish the duplicate item of rpitit Fixes rust-lang/rust#140796 r? compiler cc `@Zoxc`
2025-07-06Rollup merge of #143477 - folkertdev:use-is-multiple-of, r=joshtriplettMatthias Krüger-34/+33
use `is_multiple_of` and `div_ceil` In tricky logic, these functions are much more informative than the manual implementations. They also catch subtle bugs: - the manual `is_multiple_of` often does not handle division by zero - manual `div_ceil` often does not consider overflow The transformation is free for `is_multiple_of` if the divisor is compile-time known to be non-zero. For `div_ceil` there is a small cost to considering overflow. Here is some assembly https://godbolt.org/z/5zP8KaE1d.
2025-07-06Rollup merge of #143470 - Ayush1325:uefi-tcp4-recv, r=joshtriplettMatthias Krüger-6/+52
std: sys: net: uefi: tcp4: Implement read - A blocking implementation of tcp4 read. - Basically a copy of [write](https://github.com/rust-lang/rust/pull/141532)
2025-07-06Rollup merge of #143416 - joshtriplett:mbe-simplifications, r=nnethercoteMatthias Krüger-130/+134
mbe: Defer checks for `compile_error!` until reporting an unused macro rule The current MBE parser checks rules at initial parse time to see if their RHS has `compile_error!` in it, and returns a list of rule indexes and LHS spans that don't map to `compile_error!`, for use in unused macro rule checking. Instead, have the unused macro rule reporting ask the macro for the rule to report, and let the macro check at that time. That avoids checking rules unless they're unused. In the process, refactor the data structure used to store macro rules, to group the LHS and RHS (and LHS span) of each rule together, and refactor the unused rule tracking to only track rule indexes. This builds atop a couple of minor MBE refactors. I would suggest reviewing commit-by-commit. The overall result is a further simplification of the macro code.
2025-07-06Fix line break after ":" in unpretty attribute printJonathan Brouwer-10/+8
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-06Rewrite empty attribute lintJonathan Brouwer-191/+195
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>