about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-09-26Rollup merge of #147058 - GuillaumeGomez:ignore-more-ui-tests, r=KobzolMatthias Krüger-297/+440
Ignore more failing ui tests for GCC backend Needed for https://github.com/rust-lang/rust/pull/146414. r? ``@Kobzol``
2025-09-26Rollup merge of #147031 - joshtriplett:mbe-opt-collect, r=lcnrMatthias Krüger-6/+6
mbe: Simplify check_redundant_vis_repetition Eliminate a use of `map_or` in favor of a match. Inline some variable definitions that don't add clarity, and that prevent short-circuiting.
2025-09-26Rollup merge of #147027 - GuillaumeGomez:tyalias-disambiguator, r=lolbinarycatMatthias Krüger-1/+98
Add new `tyalias` intra-doc link disambiguator Fixes https://github.com/rust-lang/rust/issues/146855. Alternative to rust-lang/rust#146866. This adds support for a new disambiguator: `tyalias`. I think it's common enough to have type aliases nowaday, so no reason to not be able to have a disambiguator for them. cc ``@fmease`` r? lolbinarycat
2025-09-26Rollup merge of #147016 - hkBst:whitespace-1, r=nnethercoteMatthias Krüger-23/+5
fix doc comments to be more standard
2025-09-26Rollup merge of #146849 - joshtriplett:macro-reduce-legacy-bang, r=petrochenkovMatthias Krüger-22/+19
Reduce some uses of `LegacyBang` - **Switch `dummy_bang` from `LegacyBang` to `Bang`** - **mbe: Switch dummy extension used for errors from `LegacyBang` to `Bang`**
2025-09-26Rollup merge of #146778 - nikic:allocator-shim-attributes, r=jackh726Matthias Krüger-114/+126
Use standard attribute logic for allocator shim Use llfn_attrs_from_instance() to generate the attributes for the allocator shim. This ensures that we generate all the usual attributes (and don't get to find out one-by-one that a certain attribute is important for a certain target). Additionally this will enable emitting the allocator-specific attributes (not included here). This change is quite awkward because the allocator shim uses SimpleCx, while llfn_attrs_from_instance uses CodegenCx. I've switched it to use SimpleCx plus tcx/sess arguments where necessary. If there's a simpler way to do this, I'd love to know about it...
2025-09-26Rollup merge of #146758 - mati865:amd64_mingw_no_rs_objects, r=petrochenkovMatthias Krüger-7/+23
Stop linking rs{begin,end} objects on x86_64-*-windows-gnu Until now, x86_64-pc-windows-gnu linked `rsbegin.o` and `rsend.o` just like i686-pc-windows-gnu, even though they were no-ops for it. This was likely done for the simplicity back when it was introduced. Today the things are different and these startup/end objects harm other features, like `build-std`. Given the demotion of i686-pc-windows-gnu from tier 1, there is no point in hurting x86_64-pc-windows-gnu, which remains a tier 1. The files are still shipped in case downstream crates expect them, as in case of the unmaintained `xargo`. Fixes https://github.com/rust-lang/rust/issues/146739
2025-09-26Rollup merge of #146704 - jdonszelmann:port-debug-visualizer, r=petrochenkovMatthias Krüger-154/+185
port `#[debugger_visualizer]` to the new attribute system
2025-09-26Rollup merge of #146523 - thejpster:demote-armebv7r-targets, r=jackh726Matthias Krüger-5/+5
Demote both armebv7r-none-* targets. OK, slightly more controversial than https://github.com/rust-lang/rust/pull/146520 and https://github.com/rust-lang/rust/pull/146522 - I'd like to drop the bare-metal **big-endian** Armv7-R targets down to Tier 3. The reason is simple - we cannot test them in https://github.com/rust-embedded/cortex-ar/. This because QEMU support for Big Endian Armv7-R is broken. I tried quite hard, but all the strings I printed with semihosting came out byte swapped (or "etybawa depp") because of how QEMU kludges the access to memory in big-endian mode. The target also has only a single maintainer. Although, if ````@chrisnc```` wants to put up a case for keeping it at Tier 2 though, I'm happy to hear it! This PR wil be rebased once https://github.com/rust-lang/rust/pull/146419 completes the queue.
2025-09-26Rollup merge of #145113 - petrochenkov:lessfinalize, r=lcnrMatthias Krüger-15/+39
resolve: Do not finalize shadowed bindings I.e. do not mark them as used, or non-speculatively loaded, or similar. Previously they were sometimes finalized during early resolution, causing issues like https://github.com/rust-lang/rust/pull/144793#issuecomment-3168108005.
2025-09-26Auto merge of #146885 - lcnr:method-selection-opaques, r=BoxyUwUbors-291/+647
support opaque types in method selection See my notes in https://hackmd.io/4ILASx3mQ3u_gW9r1JyqCw. This PR builds on https://github.com/rust-lang/rust/pull/145993 and allows not-yet defined opaque types as self types in the `method_autoderef_chain`. E.g. for `Box<impl Deref<impl Foo>>` this results in the autoderef chain `Box<impl Deref> -> ?deref_hidden_ty -> ?foo_hidden_ty`. Method selection stays ambiguous if the final autoderef step is still an infer var unless that var is an opaque. TODO: treating opaques as rigid jank. r? `@BoxyUwU`
2025-09-26Update memchr to 2.7.6J. Neuschäfer-2/+2
memchr 2.7.6 contains a bugfix for aarch64_be
2025-09-26reviewlcnr-7/+13
2025-09-26add testslcnr-0/+161
2025-09-26move testslcnr-0/+0
2025-09-26allow method calls on opaqueslcnr-171/+357
2025-09-26use `try_structurally_resolve_type` for method receiverlcnr-36/+54
We'll still error due to the `opt_bad_ty` of `method_autoderef_steps`. This slightly worsens the span of `infer_var.method()` which is now the same as for `Box::new(infer_var).method()`. Unlike `structurally_resolve_type`, `probe_op` does not check whether the infcx is already tainted, so this results in 2 previously not emitted errors.
2025-09-26remove unnecessary structurally resolvelcnr-3/+1
`autoderef` already resolved and `method_autoderef_steps` makes sure we won't encounter an inference variable
2025-09-26predefined opaques to `method_autoderef_steps`lcnr-15/+63
2025-09-26predefined opaques use `List`lcnr-77/+16
2025-09-26Ignore more failing ui tests for GCC backendGuillaume Gomez-297/+440
2025-09-26rename `search_graph::Delegate` fnslcnr-7/+10
2025-09-26fix cycle head usages trackinglcnr-52/+166
2025-09-26Mention `tyalias` in intra-doc link rustdoc book chapterGuillaume Gomez-1/+1
2025-09-26Add tests for new `tyalias` intra-doc link disambiguatorGuillaume Gomez-0/+95
2025-09-26Auto merge of #146595 - Shourya742:make-cargo-test-work-for-self-test, r=Kobzolbors-394/+337
Make cargo test work for bootstrap self test This PR enables the bootstrap self-test to run via cargo test. I have removed the detect_src_and_out test for now, but it will be reintroduced in a follow-up PR where all bootstrap tests will be migrated to use testCtx. r? `@Kobzol` try-job: aarch64-apple
2025-09-26Add new `tyalias` intra-doc link disambiguatorGuillaume Gomez-0/+2
2025-09-26fix doc comments to be more standardMarijn Schouten-23/+5
2025-09-26Merge pull request #20748 from A4-Tacks/migrate-arith-op-precShoyu Vanilla (Flint)-12/+15
Migrate `replace_arith_op` assist to use `SyntaxEditor`
2025-09-26Merge pull request #20599 from A4-Tacks/bang-de-morganShoyu Vanilla (Flint)-7/+28
Add applicable on bang `!` for apply_demorgan
2025-09-26Migrate `replace_arith_op` assist to use `SyntaxEditor`A4-Tacks-12/+15
2025-09-26Simplify notable traits map serializationYotam Ofek-20/+5
2025-09-26Cleanup `notable_traits_decl`Yotam Ofek-56/+63
2025-09-26Remove usages of `write_str` from `render_assoc_items_inner`Yotam Ofek-41/+22
2025-09-26Merge pull request #20611 from A4-Tacks/replace-arith-op-precShoyu Vanilla (Flint)-1/+22
Fix precedence parenthesis for replace_arith_op
2025-09-26ProjectionElem::Subtype -> CastKind::Subtypebeepster4096-112/+47
2025-09-26Merge pull request #20604 from A4-Tacks/cfg-attr-compShoyu Vanilla (Flint)-1/+53
Add cfg_attr predicate completion
2025-09-26Auto merge of #147054 - matthiaskrgr:rollup-660g92w, r=matthiaskrgrbors-107/+445
Rollup of 7 pull requests Successful merges: - rust-lang/rust#146283 (Resolve: (Ref)Cell wrappers to deny mutation during spec resolution.) - rust-lang/rust#146453 (Add general arm-linux.md platform doc.) - rust-lang/rust#146991 (const_caller_location to use real Span instead of `DUMMY_SP`) - rust-lang/rust#146994 (Add `clippy::unconditional_recursion` to `./x clippy ci`) - rust-lang/rust#147038 (Rename verbosity functions in bootstrap) - rust-lang/rust#147047 (rustdoc: put the toolbar on the all item index) - rust-lang/rust#147049 (std: fix warning in VEXos stdio module) r? `@ghost` `@rustbot` modify labels: rollup
2025-09-26Merge pull request #20729 from A4-Tacks/const-param-kwdShoyu Vanilla (Flint)-1/+28
Add const parameter keyword completion
2025-09-26Merge pull request #20731 from A4-Tacks/expand-rest-pat-in-tuple-slice-patShoyu Vanilla (Flint)-19/+289
Fix expand rest pattern in tuple and slice pattern
2025-09-26Fix expand rest pattern in tuple and slice patternA4-Tacks-19/+289
Assist: expand_tuple_rest_pattern Fills fields by replacing rest pattern in tuple patterns. Example --- ``` fn foo(bar: (char, i32, i32)) { let (ch, ..$0) = bar; } ``` -> ``` fn foo(bar: (char, i32, i32)) { let (ch, _1, _2) = bar; } ``` --- Assist: expand_slice_rest_pattern Fills fields by replacing rest pattern in slice patterns. Example --- ``` fn foo(bar: [i32; 3]) { let [first, ..$0] = bar; } ``` -> ``` fn foo(bar: [i32; 3]) { let [first, _1, _2] = bar; } ```
2025-09-26Merge pull request #20598 from A4-Tacks/let-chain-sup-conv-to-guarded-retShoyu Vanilla (Flint)-45/+252
Add let-chain support for convert_to_guarded_return
2025-09-26re-order normalizations in run-make linker-warning testFabian Grünbichler-1/+1
otherwise a buildroot containing `libpanic_abort` would be mangled before being replaced by the build root placeholder value.. e.g., running `./x.py test --verbose tests/run-make/linker-warning` with rustc checked out in ~/ext/rustc-libpanic_abort will result in (output slightly shortened): ``` running 1 tests test [run-make] tests/run-make/linker-warning ... FAILED failures: ---- [run-make] tests/run-make/linker-warning stdout ---- ------rustc stdout------------------------------ ------rustc stderr------------------------------ ------------------------------------------ error: rmake recipe failed to complete status: exit status: 101 command: cd "/home/user/ext/rustc-libpanic_abort/build/x86_64-unknown-linux-gnu/test/run-make/linker-warning/rmake_out" && env -u RUSTFLAGS -u __RUSTC_DEBUG_ASSERTIONS_ENABLED -u __STD_DEBUG_ASSERTIONS_ENABLED AR="ar" BUILD_ROOT="/home/user/ext/rustc-libpanic_abort/build/x86_64-unknown-linux-gnu" CC="cc" CC_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -fPIC -m64" CXX="c++" CXX_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -fPIC -m64" HOST_RUSTC_DYLIB_PATH="/home/user/ext/rustc-libpanic_abort/build/x86_64-unknown-linux-gnu/stage1/lib" LD_LIBRARY_PATH="/home/user/ext/rustc-libpanic_abort/build/x86_64-unknown-linux-gnu/bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/home/user/ext/rustc-libpanic_abort/build/x86_64-unknown-linux-gnu/stage0/lib/rustlib/x86_64-unknown-linux-gnu/lib" LD_LIB_PATH_ENVVAR="LD_LIBRARY_PATH" LLVM_BIN_DIR="/home/user/ext/rustc-libpanic_abort/build/x86_64-unknown-linux-gnu/ci-llvm/bin" LLVM_COMPONENTS="<...>" LLVM_FILECHECK="/home/user/ext/rustc-libpanic_abort/build/x86_64-unknown-linux-gnu/ci-llvm/bin/FileCheck" NODE="/usr/bin/node" PYTHON="/usr/bin/python3" RUSTC="/home/user/ext/rustc-libpanic_abort/build/x86_64-unknown-linux-gnu/stage1/bin/rustc" RUSTDOC="/home/user/ext/rustc-libpanic_abort/build/x86_64-unknown-linux-gnu/stage1/bin/rustdoc" SOURCE_ROOT="/home/user/ext/rustc-libpanic_abort" TARGET="x86_64-unknown-linux-gnu" TARGET_EXE_DYLIB_PATH="/home/user/ext/rustc-libpanic_abort/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/home/user/ext/rustc-libpanic_abort/build/x86_64-unknown-linux-gnu/test/run-make/linker-warning/rmake" stdout: none --- stderr ------------------------------- thread 'main' panicked at /home/user/ext/rustc-libpanic_abort/tests/run-make/linker-warning/rmake.rs:74:14: test failed: `short-error.txt` is different from `(linker error)` --- short-error.txt +++ (linker error) @@ -1,6 +1,6 @@ error: linking with `./fake-linker` failed: exit status: 1 | - = note: "./fake-linker" "-m64" "/symbols.o" "<2 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/build-root/test/run-make/linker-warning/rmake_out/{libfoo,libbar}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/build-root/test/run-make/linker-warning/rmake_out" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "main" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "run_make_error" + = note: "./fake-linker" "-m64" "/symbols.o" "<2 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "/home/user/ext/rustc-libpanic_unwind/build/x86_64-unknown-linux-gnu/test/run-make/linker-warning/rmake_out/{libfoo,libbar}.rlib" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/home/user/ext/rustc-libpanic_unwind/build/x86_64-unknown-linux-gnu/test/run-make/linker-warning/rmake_out" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "main" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "run_make_error" = note: some arguments are omitted. use `--verbose` to show all linker arguments = note: error: baz [..] ``` without this fix. Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2025-09-26Merge pull request #20736 from A4-Tacks/fix-invert-if-let-chainShoyu Vanilla (Flint)-4/+13
Fix applicable on if-let-chain for invert_if
2025-09-26Merge pull request #20742 from A4-Tacks/unused-raw-varShoyu Vanilla (Flint)-2/+16
Fix fixes for unused raw variables
2025-09-26Rollup merge of #147049 - vexide:vex-std, r=workingjubileeMatthias Krüger-1/+1
std: fix warning in VEXos stdio module Fixes building `std` on the `armv7a-vex-v5` target due to an unnecessarily mutable argument in `Stdin`. This was a stupid oversight on my part towards the end of rust-lang/rust#145973's review process. Missed a warning and had a bad bootstrap config that didn't tell me about it when testing changes.
2025-09-26Rollup merge of #147047 - notriddle:toolbar-index, r=GuillaumeGomezMatthias Krüger-3/+26
rustdoc: put the toolbar on the all item index
2025-09-26Rollup merge of #147038 - Kobzol:bootstrap-verbose-fn, r=jieyouxuMatthias Krüger-58/+46
Rename verbosity functions in bootstrap Just a small cleanup, these function names have been bothering me for a while. I realized that we can delete some of them outright, rather than just renaming them. r? ``@jieyouxu``
2025-09-26Rollup merge of #146994 - cuviper:clippy-ci-recursion, r=KobzolMatthias Krüger-0/+2
Add `clippy::unconditional_recursion` to `./x clippy ci` The clippy lint catches some things that rustc's equivalent builtin lint does not, for example rust-lang/rust#146940: error: function cannot return without recursing --> library/std/src/path.rs:3428:5 | 3428 | / fn eq(&self, other: &String) -> bool { 3429 | | self == &*other 3430 | | } | |_____^ | note: recursive call site --> library/std/src/path.rs:3429:9 | 3429 | self == &*other | ^^^^^^^^^^^^^^^ = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unconditional_recursion = note: requested on the command line with `-D clippy::unconditional-recursion`
2025-09-26Rollup merge of #146991 - cachebag:span-caller-location, r=RalfJungMatthias Krüger-1/+1
const_caller_location to use real Span instead of `DUMMY_SP` Clarifying usage of DUMMY_SP