Merged
Conversation
Add a dist component for cg_gcc try-job: dist-x86_64-linux
Add allocator parameter to HashMap Hashbrown support originally added in rust-lang/hashbrown#133 Part of rust-lang/wg-allocators#7 ~See also: hashset support in rust-lang/rust#148550 (Edit: merged into this PR for crater)
docs(core): update `find()` and `rfind()` examples [find()](https://doc.rust-lang.org/std/iter/trait.Iterator.html) has a missing example. In the docs there is mention of an example with double reference but it doesn't exist. <img width="1476" height="1229" alt="image" src="https://github.com/user-attachments/assets/b99062ed-3a47-4b87-8e0c-58afd7de1332" /> [rfind()](https://doc.rust-lang.org/core/iter/trait.DoubleEndedIterator.html#method.rfind) is also very similar to `find()`, however it has the double reference example and no owned value example like `find()` does. <img width="1473" height="1163" alt="image" src="https://github.com/user-attachments/assets/7977ae5c-9888-4513-8dfc-a7c03c7ef072" /> This commit adds the missing examples and making them look consistent.
…ann,samueltardieu fix `Expr::can_have_side_effects` for `[x; N]` style array literal and binary expressions AFAIK `[0; 3]` is basically a syntax sugar for `[0, 0, 0]` so it should return whether the repeat's element can have side effects, like what it does on arrays. And it seems that the rule for unary operators and indexings can be applied to binary operators as well.
Finish transition from `semitransparent` to `semiopaque` for `rustc_macro_transparency` Since it's a bit annoying to have different names for the same thing. My understanding is that this is just internal stuff that is not part of any public API even tough rust-analyzer knows about it. Continuation of - rust-lang/rust#139084. Discovered while investigating - rust-lang/rust#150514
Clarify `MoveData::init_loc_map`. Change the `SmallVec` size from 4 to 1, because that's sufficient in the vast majority of cases. (This doesn't affect performance in practice, so it's more of a code clarity change than a performance change.) r? @cjgillot
Use functions more in rustdoc GUI tests Now that conditions are supported in `browser-ui-test`, we can start simplify some parts of the tests. This is a first cleanup, but I guess a lot more could be simplified. For follow-ups I guess. :) I made some improvements in backtrace display in `browser-ui-test`, hence the version update once more. r? @lolbinarycat
rename the `derive_{eq, clone_copy}` features to `*_internals`
Features like `derive_from` and `derive_coerce_pointee` refer to actual unstable derive macros, but the `derive_eq` and `derive_clone_copy` features are internal hacks. Rename them accordingly by adding the suffix `_internals`.
Fix trait method anchor disappearing before user can click on it A good example of this bug is going to https://doc.rust-lang.org/nightly/nightly-rustc/rustc_hir_analysis/collect/struct.ItemCtxt.html#impl-HirTyLowerer%3C'tcx%3E-for-ItemCtxt%3C'tcx%3E, and then try to click on the `§` anchor of the `tcx` method. The solution to this bug is to simply "glue" the anchor to the method, so when the mouse cursor moves to it, there is no gap between the two, preventing the anchor to disappear (hopefully this explanation doesn't make sense only to me ^^'). First commit fixes the bug by expanding the anchor size. Second commit is a small clean-up of the GUI test. Third commit actually adds the GUI regression test. cc @BoxyUwU r? @camelid
tests/ui/borrowck/issue-92157.rs: Remove (bug not fixed) The bug the test tests for is masked by the wrong `#[lang = "start"]` signature. If the signature is corrected, the test builds. But that is not because the bug is fixed, but because the test has been changed too much from the original reproducer. The original reproducer still ICE:s. See rust-lang/rust#92157 (comment). But that's fine since in the latest compiler says: > note: using internal features is not supported and expected to cause internal compiler errors when used incorrectly So let's remove the test and close the issue as "won't fix". See rust-lang/rust#92157 (comment). r? @JohnTitor since you added the test in rust-lang/rust#106878
make attrs actually use `Target::GenericParam` currently attributes lower `GenericParam` -> `Target::Param` this PR fixes this, so that `GenericParam` is lowered to `Target::GenericParam` r? @JonathanBrouwer
…, r=Kivooeo Add tracking issue for `feature(multiple_supertrait_upcastable)` Move feature(multiple_supertrait_upcastable) to the actual feature gates section (from the internal feature gates section) and give it a tracking issue. Tracking issue: rust-lang/rust#150833 Fixes rust-lang/rust#150773 This feature is for the `multiple_supertrait_upcastable` lint, which was added as `unstable` without a tracking issue, but was placed in the internal feature gates section. This PR moves its listing to the actual feature gates section and gives it a tracking issue. If the lint is intended to stay internal-only, then this can be changed to instead mark it as `internal` (and maybe close the tracking issue).
The aarch64-unknown-none target requires NEON, so the docs were wrong. As discussed [on zulip](https://rust-lang.zulipchat.com/#narrow/channel/242906-t-compiler.2Farm/topic/aarch64-unknown-none.20platform.20docs/with/567045743), we think the docs for the aarch64-unknown-none target don't match the target spec.
Rollup of 11 pull requests Successful merges: - rust-lang/rust#150272 (docs(core): update `find()` and `rfind()` examples) - rust-lang/rust#150385 (fix `Expr::can_have_side_effects` for `[x; N]` style array literal and binary expressions) - rust-lang/rust#150561 (Finish transition from `semitransparent` to `semiopaque` for `rustc_macro_transparency`) - rust-lang/rust#150574 (Clarify `MoveData::init_loc_map`.) - rust-lang/rust#150762 (Use functions more in rustdoc GUI tests) - rust-lang/rust#150808 (rename the `derive_{eq, clone_copy}` features to `*_internals`) - rust-lang/rust#150816 (Fix trait method anchor disappearing before user can click on it) - rust-lang/rust#150821 (tests/ui/borrowck/issue-92157.rs: Remove (bug not fixed)) - rust-lang/rust#150829 (make attrs actually use `Target::GenericParam`) - rust-lang/rust#150834 (Add tracking issue for `feature(multiple_supertrait_upcastable)`) - rust-lang/rust#150864 (The aarch64-unknown-none target requires NEON, so the docs were wrong.) r? @ghost
Update cargo submodule 27 commits in 94c368ad2b9db0f0da5bdd8421cea13786ce4412..8c133afcd5e0d69932fe11f5907683723f8d361d 2025-12-26 19:39:15 +0000 to 2026-01-09 03:50:15 +0000 - Isolate build script metadata progation between std and non-std crates (rust-lang/cargo#16489) - Add Clippy like lint groups (rust-lang/cargo#16464) - feat: in-memory only `Manifest` (rust-lang/cargo#16409) - Fixed incorrect version comparision during build script dependency selection (rust-lang/cargo#16486) - refactor: new type for unit index (rust-lang/cargo#16485) - feat(test): Make CARGO_BIN_EXE_ available at runtime (rust-lang/cargo#16421) - fix(package): detect dirty files when run from workspace member (rust-lang/cargo#16479) - fix(timing)!: remove `--timings=<FMT>` optional format values (rust-lang/cargo#16420) - docs(unstable): expand docs for `-Zbuild-analysis` (rust-lang/cargo#16476) - test: add `-Zunstable-options` with custom targets (rust-lang/cargo#16467) - feat(report): add cargo report rebuilds (rust-lang/cargo#16456) - feat(test-support): Use test name for dir when running tests (rust-lang/cargo#16121) - refactor: Migrate some cases to expect/reason (rust-lang/cargo#16461) - docs(build-script): clarify OUT_DIR is not cleaned between builds (rust-lang/cargo#16437) - chore: Update dependencies (rust-lang/cargo#16460) - Update handlebars to 6.4.0 (rust-lang/cargo#16457) - chore(deps): update alpine docker tag to v3.23 (rust-lang/cargo#16454) - Any build scripts can now use cargo::metadata=KEY=VALUE (rust-lang/cargo#16436) - fix(log): add `dependencies` field to `UnitRegistered` (rust-lang/cargo#16448) - Implement fine grain locking for `build-dir` (rust-lang/cargo#16155) - feat(resolver): List features when no close match (rust-lang/cargo#16445) - feat(report): new command `cargo report sessions` (rust-lang/cargo#16428) - feat (patch): Display where the patch was defined in patch-related error messages (rust-lang/cargo#16407) - test(build-rs): Reduce from 'build' to 'check' where possible (rust-lang/cargo#16444) - feat(toml): TOML 1.1 parse support (rust-lang/cargo#16415) - feat(report): support --manifest-path in `cargo report timings` (rust-lang/cargo#16441) - fix(vendor): recursively filter git files in subdirectories (rust-lang/cargo#16439)
…,samueltardieu Clippy subtree update r? Manishearth Cargo.lock update due to askama bump to be in line with the Rust repo.
resolve: Factor out and document the glob binding overwriting logic Also, avoid creating fresh name declarations and overwriting declarations in modules to update some fields in `DeclData`, when possible. Instead, change the fields directly in `DeclData` using cells. Unblocks rust-lang/rust#149195.
Reflection MVP I am opening this PR for discussion about the general design we should start out with, as there are various options (that are not too hard to transition between each other, so we should totally just pick one and go with it and reiterate later) r? @scottmcm and @joshtriplett project goal issue: rust-lang/rust-project-goals#406 tracking issue: rust-lang/rust#146922 The design currently implemented by this PR is * `TypeId::info` (method, usually used as `id.info()` returns a `Type` struct * the `Type` struct has fields that contain information about the type * the most notable field is `kind`, which is a non-exhaustive enum over all possible type kinds and their specific information. So it has a `Tuple(Tuple)` variant, where the only field is a `Tuple` struct type that contains more information (The list of type ids that make up the tuple). * To get nested type information (like the type of fields) you need to call `TypeId::info` again. * There is only one language intrinsic to go from `TypeId` to `Type`, and it does all the work An alternative design could be * Lots of small methods (each backed by an intrinsic) on `TypeId` that return all the individual information pieces (size, align, number of fields, number of variants, ...) * This is how C++ does it (see https://lemire.me/blog/2025/06/22/c26-will-include-compile-time-reflection-why-should-you-care/ and https://isocpp.org/files/papers/P2996R13.html#member-queries) * Advantage: you only get the information you ask for, so it's probably cheaper if you get just one piece of information for lots of types (e.g. reimplementing size_of in terms of `TypeId::info` is likely expensive and wasteful) * Disadvantage: lots of method calling (and `Option` return types, or "general" methods like `num_fields` returning 0 for primitives) instead of matching and field accesses * a crates.io crate could implement `TypeId::info` in terms of this design The backing implementation is modular enough that switching from one to the other is probably not an issue, and the alternative design could be easier for the CTFE engine's implementation, just not as nice to use for end users (without crates wrapping the logic) One wart of this design that I'm fixing in separate branches is that `TypeId::info` will panic if used at runtime, while it should be uncallable
Also hash spans inside the same file as relative (V2) Hashes spans relatively to their parent, even if they are not contained inside their parent. Fixes rust-lang/rust#150400 Closes rust-lang/rust#143882, as this is a successor PR This PR is very closely based on that PR with a few minor changes, so to give proper credit I made @cjgillot coauthor of the commit.
resolve: Use `Macros20NormalizedIdent` in more interfaces It allows to avoid expensive double normalization in some cases. This is an attempt to fix the perf regressions from rust-lang/rust#149681.
Canonicalizer cleanups Some cleanups in and around the canonicalizers, found while I was looking closely at this code. r? @lcnr
This updates the rust-version file to 44a5b55557c26353f388400d7da95527256fe260.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@44a5b55 Filtered ref: d2e7b71 Upstream diff: rust-lang/rust@548e586...44a5b55 This merge was created using https://github.com/rust-lang/josh-sync.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Latest update from rustc.