about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2025-03-03Rollup merge of #137921 - lnicola:sync-from-ra, r=lnicolaMatthias Krüger-4153/+5956
Subtree update of `rust-analyzer` r? `@ghost`
2025-03-03Rollup merge of #137902 - nnethercote:ast-lexer-TokenKind, r=compiler-errorsMatthias Krüger-353/+396
Make `ast::TokenKind` more like `lexer::TokenKind` This is step 2 of https://github.com/rust-lang/compiler-team/issues/831. r? `@spastorino`
2025-03-03Rollup merge of #137894 - compiler-errors:no-scalar-pair-opt, r=oli-obkMatthias Krüger-116/+33
Revert "store ScalarPair via memset when one side is undef and the other side can be memset" cc #137892 reverts #135335 r? oli-obk
2025-03-03Rollup merge of #137882 - onur-ozkan:remove-extra-compiler-stage, r=KobzolMatthias Krüger-9/+44
do not build additional stage on compiler paths When calling `x build compiler (or rustc) --stage N` bootstrap builds stage N+1 compiler, which is clearly not what we requested. This doesn't happen when running `x build --stage N` without explicitly targeting the compiler. The changes applied fix this issue. r? ghost
2025-03-03Rollup merge of #137863 - compiler-errors:unsafe-binder-render, r=oli-obkMatthias Krüger-42/+121
Fix pretty printing of unsafe binders We used to render `unsafe<> i32` as `i32`, and `unsafe<'a> &'a i32` as `for<'a> &'a i32`. r? oli-obk Review with whitespace b/c adding a new argument changes some the wrapping of some function calls.
2025-03-03Rollup merge of #137852 - moulins:layout-nonarray-simd-deadcode, ↵Matthias Krüger-114/+30
r=workingjubilee Remove layouting dead code for non-array SIMD types. These aren't supported anymore, and are already rejected in type checking.
2025-03-03Rollup merge of #135767 - tdittr:fn_ptr_calling_conventions-in-deps, ↵Matthias Krüger-7/+609
r=compiler-errors Future incompatibility warning `unsupported_fn_ptr_calling_conventions`: Also warn in dependencies Tracking issue: https://github.com/rust-lang/rust/issues/130260 As discussed [in the previous PR](https://github.com/rust-lang/rust/pull/128784/files#r1752533758) now the future incompatibility warning is enabled in dependencies. The warning was added in 1.83, while this change will get into stable in 1.86, which gives crate authors three versions to fix the warning. r? compiler-errors
2025-03-03Auto merge of #137945 - Kobzol:skip-rfl, r=marcoienibors-2/+3
Skip Rust for Linux in CI temporarily Temporary fix to unblock CI.
2025-03-03Skip Rust for Linux in CI temporarilyJakub Beránek-2/+3
2025-03-03Bless UI testsTamme Dittrich-54/+54
2025-03-03Change variadic-ffi-2 to use a platform independant ABITamme Dittrich-17/+4
Otherwise this test will include a future incompatibility warning on some targets but not others.
2025-03-03Bless UI testsTamme Dittrich-1/+616
2025-03-03After introducing the warning in 1.83, now also warn in depsTamme Dittrich-1/+1
This was left to only warn in the current crate to give users a chance to update their code. Now for 1.86 we also warn users depending on those crates.
2025-03-03Merge pull request #19269 from lnicola/sync-from-rustLaurențiu Nicola-30117/+53328
minor: sync from downstream
2025-03-03Bump rustc cratesLaurențiu Nicola-20/+20
2025-03-03Merge from rust-lang/rustLaurențiu Nicola-30096/+53307
2025-03-03Preparing for merge from rust-lang/rustLaurențiu Nicola-1/+1
2025-03-03Auto merge of #137900 - matthiaskrgr:rollup-rvan5ao, r=matthiaskrgrbors-31/+158
Rollup of 10 pull requests Successful merges: - #137375 (Minor internal comments fix for `BufRead::read_line`) - #137641 (More precisely document `Global::deallocate()`'s safety.) - #137755 (doc: update Wasmtime flags) - #137851 (improve `simd_select` error message when used with invalid mask type) - #137860 (rustc_target: Add msync target feature and enable it on powerpcspe targets) - #137871 (fix `RangeBounds::is_empty` documentation) - #137873 (Disable `f16` on Aarch64 without `neon`) - #137876 (Adjust triagebot.toml entries for `rustc_mir_build/src/builder/`) - #137883 (edit mailmap) - #137886 (`name()` and `trimmed_name()` for `stable_mir::crate_def::DefId`) r? `@ghost` `@rustbot` modify labels: rollup
2025-03-03Merge pull request #19226 from Shourya742/2025-02-25-fix-completion-ref-matchingChayim Refael Friedman-3/+25
completion-ref-matching
2025-03-03Rename a bitMichael Goulet-20/+10
2025-03-03Fix pretty printing of unsafe bindersMichael Goulet-42/+131
2025-03-02Auto merge of #137704 - nnethercote:opt-empty-prov-range-checks, r=oli-obkbors-10/+60
Optimize empty provenance range checks. Currently it gets the pointers in the range and checks if the result is empty, but it can be done faster if you combine those two steps. r? `@oli-obk`
2025-03-03Rename `ast::TokenKind::Not` as `ast::TokenKind::Bang`.Nicholas Nethercote-48/+48
For consistency with `rustc_lexer::TokenKind::Bang`, and because other `ast::TokenKind` variants generally have syntactic names instead of semantic names (e.g. `Star` and `DotDot` instead of `Mul` and `Range`).
2025-03-03Replace `ast::TokenKind::BinOp{,Eq}` and remove `BinOpToken`.Nicholas Nethercote-309/+352
`BinOpToken` is badly named, because it only covers the assignable binary ops and excludes comparisons and `&&`/`||`. Its use in `ast::TokenKind` does allow a small amount of code sharing, but it's a clumsy factoring. This commit removes `ast::TokenKind::BinOp{,Eq}`, replacing each one with 10 individual variants. This makes `ast::TokenKind` more similar to `rustc_lexer::TokenKind`, which has individual variants for all operators. Although the number of lines of code increases, the number of chars decreases due to the frequent use of shorter names like `token::Plus` instead of `token::BinOp(BinOpToken::Plus)`.
2025-03-02Rollup merge of #137886 - NotLebedev:stable-mir-91, r=oli-obkMatthias Krüger-16/+27
`name()` and `trimmed_name()` for `stable_mir::crate_def::DefId` Resolves https://github.com/rust-lang/project-stable-mir/issues/91 * Added `stable_mir::crate_def::DefId::name()` and `stable_mir::crate_def::DefId::trimmed_name()` methods * Changed `CrateDef` and `DefId` `Debug` implementations to use new methods instead of copy-paste call to `Context::def_name` * Updated docs to avoid duplicating description of what `name` and `trimmed_name` do
2025-03-02Rollup merge of #137883 - jdonszelmann:edit-mailmap, r=NoratriebMatthias Krüger-0/+3
edit mailmap
2025-03-02Rollup merge of #137876 - Zalathar:triagebot-matches, r=jieyouxuMatthias Krüger-3/+3
Adjust triagebot.toml entries for `rustc_mir_build/src/builder/` I only just noticed that these paths were silently broken by the renaming of `build` to `builder` in #134365. This is *possibly* OK to just self-approve, but I would prefer to get a second set of eyes on it just in case.
2025-03-02Rollup merge of #137873 - tgross35:disable-f16-without-neon, r=workingjubileeMatthias Krüger-0/+7
Disable `f16` on Aarch64 without `neon` LLVM has crashes at some `half` operations when built with assertions enabled if fp-armv8 is not available [1]. Things seem to usually work, but we are reaching LLVM undefined behavior so this needs to be disabled. [1]: https://github.com/llvm/llvm-project/issues/129394
2025-03-02Rollup merge of #137871 - pitaj:rangebounds-is_empty-intersect, r=scottmcmMatthias Krüger-1/+1
fix `RangeBounds::is_empty` documentation One-sided ranges are never empty follow-up for https://github.com/rust-lang/rust/pull/137304#pullrequestreview-2646899461
2025-03-02Rollup merge of #137860 - taiki-e:powerpcspe-msync, r=workingjubileeMatthias Krüger-1/+4
rustc_target: Add msync target feature and enable it on powerpcspe targets Some older PowerPC processors do not have the `sync` (`sync 0`) and `lwsync` (`sync 1`) instructions, but instead have the `msync` instruction. (IIRC `msync` and `sync` will be assembled into the same bit-pattern, but `lwsync` will be SIGILL. See also https://gcc.gnu.org/legacy-ml/gcc-patches/2006-11/msg01238.html.) LLVM recognizes this as the [`msync` feature](https://github.com/llvm/llvm-project/blob/cc5d8a4b2fc765c3c432f1ad0b185dae518d41bd/llvm/lib/Target/PowerPC/PPC.td#L140) and enables for some cpus such as [e500](https://github.com/llvm/llvm-project/blob/cc5d8a4b2fc765c3c432f1ad0b185dae518d41bd/llvm/lib/Target/PowerPC/PPC.td#L644). powerpcspe is a target for CPUs such as e500 ([Debian Wiki](https://wiki.debian.org/PowerPCSPEPort)). However, the `msync` feature is currently not enabled except for vxworks, and at least since 2022-04, powerpc-unknown-linux-gnuspe was known to not work on real hardware without `-C target-cpu` (e.g., #96394, #117361). https://github.com/rust-lang/rust/blob/8c392966a013fd8a09e6b78b3c8d6e442bc278e1/compiler/rustc_target/src/spec/targets/powerpc_wrs_vxworks_spe.rs#L28 Fixes #117361 cc `@BKPepe` ([powerpc-unknown-linux-muslspe target maintainer](https://doc.rust-lang.org/nightly/rustc/platform-support/powerpc-unknown-linux-muslspe.html#target-maintainers)) cc `@glaubitz` (who added powerpc-unknown-linux-gnuspe in https://github.com/rust-lang/rust/pull/48484) cc `@th0ma7` (who opened #117361) r? workingjubilee `@rustbot` label +O-PowerPC +A-target-feature
2025-03-02Rollup merge of #137851 - folkertdev:simd-intrinsic-mask-signed, ↵Matthias Krüger-5/+102
r=workingjubilee improve `simd_select` error message when used with invalid mask type followup to https://github.com/rust-lang/rust/pull/137828 This PR improves the error message for an invalid `simd_select` mask type, and adds testing for `simd_scatter` and `simd_gather` being used with invalid mask types. the `simd_masked_load` and `simd_masked_store` intrinsics already generated a better error message: https://github.com/rust-lang/rust/blob/0c72c0d11adeba449886089c6bd5d48363f7a2cd/tests/ui/simd/masked-load-store-build-fail.rs#L24-L37 r? `@workingjubilee`
2025-03-02Rollup merge of #137755 - DaniPopes:wasmtime-threads-flag, r=NoratriebMatthias Krüger-2/+2
doc: update Wasmtime flags Wasmtime's `--wasm-features` and `--wasi-modules` flags have been renamed since these docs were initially written. Additionally, from my testing I don't believe `--wasm threads` is needed if `--wasi threads` is passed already.
2025-03-02Rollup merge of #137641 - kpreid:dealloc, r=AmanieuMatthias Krüger-2/+8
More precisely document `Global::deallocate()`'s safety. There is a subtlety which "other conditions must be upheld by the caller" does not capture: `GlobalAlloc`/`alloc::dealloc()` require that the provided layout will be *equal*, not just that it "fits", the layout used to allocate. This is always true here due to how `allocate()`, `grow()`, and `shrink()` are implemented (they never return a larger allocation than requested), but that is a non-local property of the implementation, so it should be documented explicitly. r? libs `@rustbot` label A-allocators
2025-03-02Rollup merge of #137375 - steffahn:clarify-read_line-comment, r=Mark-SimulacrumMatthias Krüger-1/+1
Minor internal comments fix for `BufRead::read_line` Just a little fix that came up while I was reading through this source code, and had to search for a few minutes to find out what was actually *meant* here.
2025-03-02Add a testMichael Goulet-0/+14
2025-03-02Revert "Auto merge of #135335 - oli-obk:push-zxwssomxxtnq, r=saethlin"Michael Goulet-125/+28
This reverts commit a7a6c64a657f68113301c2ffe0745b49a16442d1, reversing changes made to ebbe63891f1fae21734cb97f2f863b08b1d44bf8.
2025-03-02Auto merge of #137661 - nikic:llvm20-rc3, r=cuviperbors-0/+0
Update to LLVM 20 rc 3 Fixes a compiler-builtins miscompile (see https://github.com/rust-lang/compiler-builtins/pull/760).
2025-03-02Merge pull request #19266 from the-mikedavis/lsp-pull-diagnostics-identifierLaurențiu Nicola-1/+1
Add `identifier` to pull diagnostic LSP capabilities
2025-03-02Add `identifier` to pull diagnostic LSP capabilitiesMichael Davis-1/+1
This field in the server capabilities instructs the client to maintain the diagnostics received from a `textDocument/diagnostic` pull request as a separate set from other diagnostics: namely those sent with classic "push" diagnostics, `textDocument/publishDiagnostic`. rust-analyzer emits "native" diagnostics (computed by rust-analyzer itself) in pull diagnostics and separately emits cargo-based diagnostics with push, so push and pull diagnostics should be different sets. Setting this field instructs the client to avoid clearing push diagnostics when new pull diagnostics arrive and vice versa.
2025-03-02Merge pull request #19264 from lnicola/theme-colorLaurențiu Nicola-6/+1
minor: Fix transparent diagnostics
2025-03-02Fix transparent diagnosticsLaurențiu Nicola-6/+1
2025-03-02Auto merge of #137425 - yotamofek:pr/rustdoc/return-impl-display-redux, ↵bors-2274/+2476
r=GuillaumeGomez `librustdoc`: return `impl fmt::Display` in more places instead of writing to strings Continuation of #136784 , another attempt at landing the larger parts of #136748 . I'd like to, gradually, make all of the building blocks for rendering docs in `librustdoc` return `impl fmt::Display` instead of returning `Strings`, or receiving a `&mut String` (or `&mut impl fmt::Write`). Another smaller end goal is to be able to get rid of [`write_str`](https://github.com/rust-lang/rust/blob/8dac72bb1d12b2649acd0c190e41524f83da5683/src/librustdoc/html/format.rs#L40-L42). This PR is a large step in that direction. Most of the changes are quite mechanical, and split up into separate commits for easier reviewing (hopefully). I took `print_item` and then started by converting all the functions it called (and their dependencies), and the last commit does the conversion for `print_item` itself. Ignoring whitespace should make reviewing a bit easier. And most importantly, perf run shows pretty good results locally, hopefully CI will also show green 😁 r? `@GuillaumeGomez` , if you feel like it.
2025-03-02Remove layouting dead code for non-array SIMD types.Moulins-114/+30
These aren't supported anymore, and are already rejected in type checking.
2025-03-02extend scope of build_all testonur-ozkan-5/+40
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2025-03-02Remove duplication in `name`/`trimmed_anem` docsNotLebedev-8/+3
Reference `DefId` in `CrateDef` docs to avoid duplicating long description of `trimmed_name`
2025-03-02Auto merge of #136864 - Kobzol:citool, r=marcoienibors-328/+1049
Rewrite the `ci.py` script in Rust It would seem that I would learn by now that any script written in Python will become unmaintainable sooner or later, but alas.. r? `@marcoieni` try-job: aarch64-gnu try-job: dist-x86_64-linux-alt try-job: x86_64-msvc-ext2 Fixes: https://github.com/rust-lang/rust/issues/137013
2025-03-02Replace usages of `Context.def_name`NotLebedev-8/+3
Use `DefId.name` and `DefId.trimmed_name` instead
2025-03-02Add name and trimmed_name methods to DefIdNotLebedev-0/+21
2025-03-02edit mailmapJana Dönszelmann-0/+3
2025-03-02do not build additional stage on compiler pathsonur-ozkan-5/+5
When calling `x build compiler (or rustc) --stage N` bootstrap builds stage N+1 compiler, which is clearly not what we requested. This doesn't happen when running `x build --stage N` without explicitly targeting the compiler. The changes applied fix this issue. Signed-off-by: onur-ozkan <work@onurozkan.dev>