Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
281 commits
Select commit Hold shift + click to select a range
6f52550
Add Swift function call ABI
djc Apr 26, 2026
2f4c35e
Unnormalized migration: struct_tail takes fn taking Unnormalized
khyperia May 6, 2026
6d648f3
Rollup merge of #155815 - djc:swift-cc, r=jieyouxu
JonathanBrouwer May 13, 2026
8474bb0
Add trait methods for experimental retags to cg.
icmccorm Apr 30, 2026
5e72aee
Let intrinsics use the SSA operand path
scottmcm May 3, 2026
0a4077f
Fix invalid cg_gcc `panic` function cast
GuillaumeGomez May 23, 2026
f8725cd
Auto merge of #156549 - GuillaumeGomez:ci-gcc-core, r=Kobzol
bors May 26, 2026
2ad24e1
MIR inlining: allow backends to opt-in to inlining intrinsics
RalfJung May 10, 2026
8959aa4
Support implementing ExtraBackendMethods and WriteBackendMethods inde…
bjorn3 May 28, 2026
27b16b4
Merge branch 'master' into sync_from_rust_2026_05_28
antoyo May 28, 2026
cf57045
Update to nightly-2026-05-28
antoyo May 28, 2026
a291dd0
Stop needing an alloca for `catch_unwind`
scottmcm May 23, 2026
09e03d4
Rollup merge of #156867 - scottmcm:WIP-no-alloca-for-catch-unwind, r=…
JonathanBrouwer May 29, 2026
1fcc636
Rollup merge of #157050 - bjorn3:lto_refactors19, r=lqd
JonathanBrouwer May 29, 2026
07ba767
Ignore spelling
antoyo May 29, 2026
e2ae9ad
Add missing LLVM intrinsic mapping
antoyo May 29, 2026
418adda
resolve: Partially convert `ambiguous_glob_imports` lint into a hard …
petrochenkov Nov 21, 2025
f775c81
Add more missing LLVM intrinsic mapping
antoyo May 29, 2026
d865ac7
Emit a plain jump for a switch with no cases
Dnreikronos May 29, 2026
5dad41c
Update GCC version
antoyo May 29, 2026
86a4fa0
Add cpuid.def to enable the feature AVX512_VP2INTERSECT
antoyo May 29, 2026
60006c3
Add CARGO_TEST_FLAGS for run-time lang test flags
Dnreikronos May 29, 2026
fdd3536
Add regression test for empty switch under mir-preserve-ub
Dnreikronos May 29, 2026
bf60f4f
Merge pull request #889 from rust-lang/sync_from_rust_2026_05_28
antoyo May 30, 2026
a4a9a38
Regen intrinsics
GuillaumeGomez May 29, 2026
79cdc92
Merge pull request #890 from GuillaumeGomez/regen
antoyo May 30, 2026
a2d570d
Run the mir-preserve-ub switch test in CI
Dnreikronos May 30, 2026
2fee57a
Merge pull request #891 from Dnreikronos/fix-empty-switch-no-cases
antoyo May 30, 2026
d66d11d
Remove TODO in .cspell.json
reddevilmidzy Mar 8, 2026
4f811af
Add alloc tests
antoyo May 31, 2026
df51550
Merge pull request #894 from rust-lang/alloc-tests
antoyo May 31, 2026
c5097de
Add support for output operand in asm goto
antoyo May 31, 2026
cd4b93a
Merge pull request #895 from rust-lang/fix/output-operand-asm-goto
antoyo Jun 1, 2026
c1dd71e
Add TODO checker
reddevilmidzy Mar 7, 2026
feb1d32
Update FIXME link to int_traits in comment
reddevilmidzy Jun 1, 2026
0d8d2fe
Merge pull request #861 from reddevilmidzy/mcp-963
antoyo Jun 1, 2026
c3101c0
Use a `ArrayVec` in `CastTarget`
alexcrichton May 29, 2026
9f9e508
Rollup merge of #157130 - alexcrichton:refactor-cast-target-internals…
JonathanBrouwer Jun 2, 2026
b3197a8
add stdarch-tests command
moses7054 Jun 5, 2026
2688bb0
Use stdarch-tests command in stdarch CI
moses7054 Jun 5, 2026
5059de2
Download Intel sde from rust-lang CI mirror
moses7054 Jun 5, 2026
b7a98d1
Merge pull request #896 from moses7054/add/stdarch-test-command
antoyo Jun 5, 2026
d5db9be
add `extern "tail"` calling convention
folkertdev May 27, 2026
774e911
Use WorkProductMap instead of FxIndexMap
bjorn3 Jun 3, 2026
5fb3b38
asm! support for the Xtensa architecture
MabezDev Oct 3, 2025
a20ecda
Rollup merge of #147302 - esp-rs:xtensa-asm, r=Amanieu
JonathanBrouwer Jun 8, 2026
9202952
Add inline asm support for amdgpu
Flakebi Jun 3, 2026
ef638de
Move create_scope_map to rustc_codegen_ssa.
cjgillot Jun 10, 2026
ab8c5d5
Rollup merge of #157722 - cjgillot:ssa-create-scope-map, r=oli-obk
jhpratt Jun 12, 2026
9b4d320
remove LLVM `va_end` calls
folkertdev Jun 8, 2026
f516eb4
Rollup merge of #157627 - folkertdev:remove-llvm-va_end, r=RalfJung
jhpratt Jun 15, 2026
9ff44af
codegen_ssa: multiply scalable vec size by `vscale`
davidtwco Jun 22, 2026
515a89c
cg_LLVM: Stop needing an alloca for volatile loads
scottmcm May 23, 2026
27da6ce
rustc_target/asm: add LoongArch LSX/LASX inline asm register support
heiher Jun 23, 2026
3d3ea2f
cg_gcc: Fix Clippy lint fallout
flip1995 Jun 25, 2026
a292cee
Auto merge of #158403 - flip1995:clippy-subtree-update, r=Manishearth
bors Jun 26, 2026
59b042d
New signature of `get_fn_addr`, teach Rust how to sign fn pointers
jchlanda Apr 3, 2026
7532add
Rollup merge of #157127 - scottmcm:tweak-layout-of-alternative, r=nikic
JonathanBrouwer Jun 26, 2026
0e3928a
Merge branch 'master' into sync_from_rust_2026_06_27
antoyo Jun 27, 2026
cd67c77
use `"llvm.prefetch.p0"` instead of `"llvm.prefetch"`
folkertdev Jun 27, 2026
87e532e
Rollup merge of #158497 - folkertdev:stdarch-sync-2026-06-27, r=folke…
jhpratt Jun 28, 2026
cf22ea9
Update to nightly-2026-06-28
antoyo Jun 28, 2026
3120a7a
Remove useless stdarch patch
antoyo Jun 28, 2026
e44da23
Fix the debug_assert in bytes_in_context
antoyo Jun 28, 2026
2c9b73d
Add failing UI tests
antoyo Jun 28, 2026
34418c3
Add spelling exclusion
antoyo Jun 28, 2026
2d86197
Add dummy implementation of more tile intrinsics
antoyo Jun 28, 2026
cf90818
Ignore more tile intrinsic tests
antoyo Jun 28, 2026
adc4484
Add dummy implementation of f16 for m68k CI
antoyo Jun 28, 2026
1357e7a
Merge pull request #899 from rust-lang/sync_from_rust_2026_06_27
antoyo Jun 28, 2026
212751e
Remove debuginfo_finalize from DebugInfoCodegenMethods
bjorn3 Jun 29, 2026
fca3461
Move a bunch of debuginfo functions from codegen to builder methods
bjorn3 Jun 29, 2026
3ec1773
Move a couple more debuginfo functions from codegen to builder methods
bjorn3 Jun 29, 2026
78410ba
Pass &mut self to all debuginfo builder methods
bjorn3 Jun 29, 2026
0df4855
Rename `align` to `platform_align` on `Scalar` and `Primitive`
scottmcm Jun 29, 2026
08f0607
Regenerate intrinsics
GuillaumeGomez Jun 29, 2026
59efe30
Directly generate correctly formatted intrinsics file
GuillaumeGomez Jun 29, 2026
e278aec
Put back removed intrinsics as they are still used
GuillaumeGomez Jun 29, 2026
0bddd89
Merge pull request #900 from GuillaumeGomez/regen
GuillaumeGomez Jun 29, 2026
d0314ca
Rollup merge of #155722 - jchlanda:jakub/pac, r=davidtwco
JonathanBrouwer Jun 30, 2026
0b425d4
Rollup merge of #158560 - bjorn3:ssa_refactor_debuginfo, r=Kivooeo
JonathanBrouwer Jun 30, 2026
ccaf719
Add comment explaining why we don't handle all function parameter att…
GuillaumeGomez Jun 30, 2026
cbe50df
Merge pull request #901 from GuillaumeGomez/add-doc
GuillaumeGomez Jun 30, 2026
ca2bf57
Rollup merge of #158542 - scottmcm:scalar-but-packed, r=workingjubilee
jhpratt Jul 1, 2026
b08124a
Add asm tests
GuillaumeGomez Jun 30, 2026
31181d1
Move `asm-tester` into its own binary so the `compiletest_rs` depende…
GuillaumeGomez Jul 1, 2026
d9b9ce7
Add `test_asm` to the `run_all` call and run `--gcc-asm-tests` in the CI
GuillaumeGomez Jul 1, 2026
382936a
Rollup merge of #158364 - heiher:loong-asm-simd, r=wesleywiser
jhpratt Jul 1, 2026
1b0167d
Prevent unwanted recompilations
GuillaumeGomez Jul 1, 2026
c050550
Fix documentation for `y.sh rustc` to use the release channel
GuillaumeGomez Jul 1, 2026
edafd1f
Remove `--out-dir` option when using `y.sh rustc` or `y.sh cargo` to …
GuillaumeGomez Jul 1, 2026
b9ea2a5
No need to re-create `Config`, use the one provided in `TestArgs`
GuillaumeGomez Jul 1, 2026
42df31b
Merge pull request #904 from GuillaumeGomez/rustc-command
GuillaumeGomez Jul 1, 2026
9bcf4c1
Merge pull request #903 from GuillaumeGomez/asm-tests
GuillaumeGomez Jul 1, 2026
704a9f7
Add passing asm tests
antoyo Jul 2, 2026
45eb8a3
Add another passing asm test that needed an adjustment to the checked…
antoyo Jul 2, 2026
569b0b0
Merge pull request #905 from rust-lang/more-asm-tests
GuillaumeGomez Jul 2, 2026
684aebb
Fix `unaligned_volatile_store` by removing `MemFlags::UNALIGNED`
scottmcm Jul 7, 2026
a4cb6e7
Carry the `b_offset` inside `BackendRepr::ScalarPair`
scottmcm Jul 1, 2026
4534180
Rollup merge of #158899 - scottmcm:better-volatile-store, r=saethlin
jhpratt Jul 10, 2026
2c0ffd2
[cg_ssa] Eliminate the `is_backend_{immediate,scalar_pair,ref}` methods
scottmcm Jul 12, 2026
162a3a5
Pointer authentication config and user facing options
jchlanda May 7, 2026
0203f8e
Document -Zpointer-authentication option
jchlanda May 21, 2026
a20f180
Merge branch 'master' into sync_from_rust_2026_07_14
antoyo Jul 14, 2026
254808d
Update to nightly-2026-07-14
antoyo Jul 14, 2026
2bee634
Fix spelling
antoyo Jul 14, 2026
68e317c
Update GCC version
antoyo Jul 14, 2026
83a96cd
Update failing UI tests
antoyo Jul 14, 2026
8d7b443
Merge pull request #909 from rust-lang/sync_from_rust_2026_07_14
antoyo Jul 14, 2026
22789e6
implement `va_start` and `va_arg`
folkertdev Jul 12, 2026
ff01db2
enable c-variadic ui tests
folkertdev Jul 14, 2026
f9c093a
use latest version of gccjit
folkertdev Jul 14, 2026
2467b67
Merge pull request #906 from folkertdev/va-arg
antoyo Jul 14, 2026
bd30184
Update uses of `rustc_codegen_ssa::errors`
GuillaumeGomez Jul 15, 2026
75f5d18
use core fallbacks for more `f16`/`f128` operations
folkertdev Jul 16, 2026
3aeb91f
Merge pull request #910 from folkertdev/use-float-fallbacks
antoyo Jul 16, 2026
61a02cd
add support for explicit tail calls (`musttail`)
folkertdev Jul 16, 2026
5b4dbca
Merge pull request #911 from folkertdev/guaranteed-tail-calls
antoyo Jul 16, 2026
5e2d1e2
Treat `-Ctarget-cpu` as a target-modifier when targeting AVR, AMDGCN …
kulst Jan 6, 2026
95311e7
Stop unconditionnaly remove some UI tests directories
antoyo Jul 17, 2026
1bb4b16
Merge pull request #913 from rust-lang/fix/stop-remove-ui-tests-direc…
antoyo Jul 17, 2026
2453a68
Add command to run specified UI tests
antoyo Jul 17, 2026
d5ed2d4
Implement stack protector
antoyo Jul 17, 2026
a27a557
Merge pull request #914 from rust-lang/feature/stack-protector
antoyo Jul 17, 2026
6a44cfa
Do not stop on error in clean ui-tests
antoyo Jul 17, 2026
10ceee0
Stop removing tests containing 'thread'
antoyo Jul 17, 2026
ebe0b39
Implement stack probes
antoyo Jul 17, 2026
e5e3a49
Add new failing UI tests
antoyo Jul 18, 2026
e6a5f92
Add new failing LTO tests
antoyo Jul 18, 2026
6e16580
Rollup merge of #159164 - scottmcm:remove-is-backend-blah, r=workingj…
jhpratt Jul 18, 2026
19c6065
Optimize slice::contains for bytewise types
SomeFlyingThing Jul 18, 2026
d017855
Fix --run-ui-tests command to always run the tests
antoyo Jul 18, 2026
16db53d
Rollup merge of #150732 - kulst:cpu_is_target_modifier, r=bjorn3
JonathanBrouwer Jul 19, 2026
40d419f
ci: loongarch64-linux: Bump binutils to 2.46.1 and gcc to 16.1
heiher Jul 17, 2026
e9eb770
Promote loongarch32-unknown-none* to Tier 2
heiher Jul 20, 2026
c3cb935
Switch to new_temp to avoid having big stack in debug mode
antoyo Jul 20, 2026
946b0fa
Update GCC version
antoyo Jul 20, 2026
fa4cae5
codegen: add OperandValue::Uninit to skip stores for entirely-uninit …
glandium Jul 21, 2026
988d5f2
Merge pull request #915 from rust-lang/feature/stack-probe
antoyo Jul 21, 2026
d76c33b
Update `gccjit` dependency version to `3.6.0`
GuillaumeGomez Jul 21, 2026
caa7473
Add support for global variable aliases
GuillaumeGomez Jul 21, 2026
7f4f4e9
Add support for function aliases
GuillaumeGomez Jul 21, 2026
920bd40
Remove newly passing eii ui tests
GuillaumeGomez Jul 21, 2026
d21eee5
Fix clippy lints
GuillaumeGomez Jul 21, 2026
97ad6fc
Fix typo "aliasee"
GuillaumeGomez Jul 21, 2026
2ca8d7f
Merge pull request #918 from GuillaumeGomez/aliases
antoyo Jul 22, 2026
622323a
Lower x86-interrupt byval first argument as pointer
Dnreikronos Jul 22, 2026
e052a81
Merge pull request #893 from Dnreikronos/x86-interrupt-non-pointer-fi…
antoyo Jul 22, 2026
6bc1235
Fix flakyness of the stdarch tests in the CI
antoyo Jul 22, 2026
d02bafc
Merge pull request #919 from rust-lang/fix/flaky-stdarch-ci
antoyo Jul 22, 2026
8a10ee5
gcc: locate codegen-backends via host_tuple()
xobs Jul 19, 2026
d948981
Merge pull request #920 from xobs/gcc-backend-via-host-tuple
antoyo Jul 23, 2026
ce209dc
Update `gccjit` version to `3.7.0`
GuillaumeGomez Jul 23, 2026
2ea1599
Update libgccjit version
GuillaumeGomez Jul 23, 2026
b1a20b9
Add support for `used` attribute
GuillaumeGomez Jul 23, 2026
bcea6f6
Add asm test for the `used` attribute
GuillaumeGomez Jul 23, 2026
df4939b
Remove newly passing `tests/ui/linking/no-gc-encapsulation-symbols.rs…
GuillaumeGomez Jul 24, 2026
8a05e19
Make code closer to its LLVM equivalent to make it simpler to map both
GuillaumeGomez Jul 24, 2026
05ee590
Merge pull request #921 from GuillaumeGomez/used
GuillaumeGomez Jul 24, 2026
06abf25
Merge branch 'master' into sync_from_rust_2026_07_24
antoyo Jul 24, 2026
dbc2c2b
Update to nightly-2026-07-24
antoyo Jul 24, 2026
b6fd3e8
Make `tests/asm/used.rs` work more easily
GuillaumeGomez Jul 24, 2026
057c6ba
Merge pull request #923 from rust-lang/sync_from_rust_2026_07_24
antoyo Jul 24, 2026
4b10433
doc/subtree.md: fix typo ("sync" -> "synced")
DanielEScherzer Jul 24, 2026
61341d0
Merge pull request #924 from DanielEScherzer/subtree-docs
antoyo Jul 24, 2026
d7cb205
Update doc for subtree sync
GuillaumeGomez Jul 24, 2026
dccb89f
Add support for section linking
GuillaumeGomez Jul 24, 2026
2113ef2
Remove newly passing ui test from the failing list
GuillaumeGomez Jul 24, 2026
749dbe6
If `feature = "master"` is enabled, we use `add_attribute(VarAttribut…
GuillaumeGomez Jul 24, 2026
d1f73f5
Merge pull request #925 from GuillaumeGomez/doc
GuillaumeGomez Jul 24, 2026
339ca6b
Merge pull request #926 from GuillaumeGomez/link-section
GuillaumeGomez Jul 25, 2026
4e6d528
Simplify parsing of `Command` in `build_system`
GuillaumeGomez Jul 25, 2026
82081ab
Tie `Command` variant declaration and CLI parsing together
GuillaumeGomez Jul 25, 2026
b544d99
Merge pull request #928 from GuillaumeGomez/cleanup
GuillaumeGomez Jul 25, 2026
7a90d91
Automatically install `rustfmt` if not installed when running `y.sh f…
GuillaumeGomez Jul 25, 2026
2dd379b
Merge pull request #929 from GuillaumeGomez/fmt-auto-install
GuillaumeGomez Jul 26, 2026
550d70a
asm: seed the in_value for inout
xobs Jul 26, 2026
3aea6dc
Merge pull request #932 from xobs/seed-input-of-discarded-asm-output
antoyo Jul 26, 2026
f5dc6be
int: implement signed comparison for unsigned integers
xobs Jul 26, 2026
ad3ce24
test: add regression test for bool indexing codegen
amirHdev Jul 26, 2026
f0b0224
Create a new util function `run_tool_and_install_it_if_not_present`
GuillaumeGomez Jul 26, 2026
a1f0a6c
Add new `y.sh clippy` command
GuillaumeGomez Jul 26, 2026
6cb6c64
Simplify CI workflows by removing installation of rustfmt/clippy and …
GuillaumeGomez Jul 26, 2026
922cec7
Update contribution docs to mention `y.sh` commands for clippy and fmt
GuillaumeGomez Jul 26, 2026
2fb1b6d
Merge pull request #931 from xobs/support-signed-comparison
antoyo Jul 26, 2026
811a82d
Merge pull request #933 from GuillaumeGomez/clippy
GuillaumeGomez Jul 27, 2026
9e11f3c
add tests for loading injected crates
Bryanskiy Jul 24, 2026
1d77f8a
reject varargs without pattern post-expansion
folkertdev Jul 29, 2026
b0811a0
support `-Ldependency` search paths for panic runtimes
Bryanskiy Jul 29, 2026
d1e25b4
tests: remove test for compiler_builtins
Bryanskiy Jul 29, 2026
8d309d2
Add regression test for supertrait projection normalization through dyn
zakrad Jul 29, 2026
ab78e6a
fix typo and do not emit extra error
Bryanskiy Jul 31, 2026
e9adb63
Update GCC version
GuillaumeGomez Jul 31, 2026
cd9781b
Update `gccjit` version to `4.0.0`
GuillaumeGomez Jul 31, 2026
d3f4209
Update code to new `gccjit` version
GuillaumeGomez Jul 31, 2026
3396d86
tests: emit llvm-ir to avoid running the linker
Bryanskiy Jul 31, 2026
f48274b
Linkify C-SKY targets in `platform-support.md`
beetrees Jul 31, 2026
bacfb80
Fix rustdoc ICE when checking if a generic arg can be elided
Colepng Jul 31, 2026
ce8f413
Add regression test for rustdoc ICE when checking if a generic arg ca…
Colepng Jul 31, 2026
6e2de73
point at trait definition when it is used as a derive macro
Albab-Hasan Aug 1, 2026
2ffc259
Add regression test for unused_parens on contract clauses
chenyukang Aug 1, 2026
d443d45
fix borrowck ICE for consts with fn pointer type
im-lunex Aug 1, 2026
f489477
Update GCC version
antoyo Aug 1, 2026
cbb0887
Merge pull request #936 from GuillaumeGomez/update-gcc
antoyo Aug 1, 2026
1bd110c
Only keep minimum required info for `cpuid.def`
GuillaumeGomez Jul 31, 2026
b3791c6
Merge pull request #935 from GuillaumeGomez/cpuuid
GuillaumeGomez Aug 1, 2026
2cee421
ElaborateBoxDeref: remove unnecessary projection
RalfJung Aug 1, 2026
614d081
Merge commit 'b3791c6305afd6ecc3e7f6232487f2bb31aed3e7'
GuillaumeGomez Aug 1, 2026
fe87d15
Update GCC submodule
GuillaumeGomez Aug 1, 2026
5ab7f50
Comment fix for rustdoc ICE when checking if a generic arg can be elided
Colepng Aug 2, 2026
569e0bc
Further minimize regression test for rustdoc ICE
Colepng Aug 2, 2026
5ba0b9f
Add (failing) test to check for an exact alias before a similar name
joshtriplett Aug 2, 2026
f7596e8
Add doc aliases for transpositions `read_exact_buf` and `read_exact_b…
joshtriplett Aug 2, 2026
32c2ca0
When suggesting method names, prefer *exact* doc aliases over similar…
joshtriplett Aug 2, 2026
58cb959
Build newer `make` version when testing `gcc` backend
GuillaumeGomez Aug 2, 2026
388388d
Fix gzip decompression
GuillaumeGomez Aug 2, 2026
ad2ca88
fix: restrict bool indexing assembly test from Windows
amirHdev Aug 2, 2026
910ec5a
Simplify `DepKind` constants
nnethercote Aug 2, 2026
c4e9932
Remove `DepKind::label_strs`
nnethercote Aug 2, 2026
a707cbf
Document `dep_kind_from_label_string`
nnethercote Aug 2, 2026
3c80f17
add regression test for direct inline const generic defaults
TaKO8Ki Jul 14, 2026
a0ac21b
fix generics lookup for direct inline const defaults
TaKO8Ki Jul 14, 2026
fd3c89d
Add PR body notes for Cargo lock file maintenance
marcoieni Aug 3, 2026
1a3d919
Deny multiple EII impls on a single item
bjorn3 Jul 15, 2026
496056f
Use `thread::available_parallelism` as the default limit for backend …
petrochenkov Aug 3, 2026
d4e34c9
Do not take `doc(cfg())` into account when filtering doctests
GuillaumeGomez Jul 9, 2026
7bb6021
Add regression test for `doc(cfg())` doctest (non-)filtering
GuillaumeGomez Jul 9, 2026
bfc0d0d
Ignore std doctests if not run on the right OS
GuillaumeGomez Jul 9, 2026
20cf32e
Fix new windows doc code example
GuillaumeGomez Aug 3, 2026
ac65895
Rollup merge of #159844 - GuillaumeGomez:subtree-update_cg_gcc_2026-0…
JonathanBrouwer Aug 3, 2026
e0692df
Rollup merge of #159326 - bjorn3:deny_multiple_eii_impls, r=jdonszelmann
JonathanBrouwer Aug 3, 2026
6be15b5
Rollup merge of #159535 - SomeFlyingThing:optimize-slice-contains-byt…
JonathanBrouwer Aug 3, 2026
f6eb018
Rollup merge of #159595 - heiher:promote-loong32-none, r=Mark-Simulacrum
JonathanBrouwer Aug 3, 2026
5dd7bcc
Rollup merge of #160007 - Bryanskiy:load-injected, r=bjorn3
JonathanBrouwer Aug 3, 2026
1a2edc5
Rollup merge of #160320 - Albab-Hasan:derive-trait-not-a-derive-macro…
JonathanBrouwer Aug 3, 2026
eb7c172
Rollup merge of #160369 - joshtriplett:suggest-exact-alias-before-sim…
JonathanBrouwer Aug 3, 2026
3107705
Rollup merge of #160406 - nnethercote:DepKind-cleanups, r=Zalathar
JonathanBrouwer Aug 3, 2026
1ac3f48
Rollup merge of #160424 - petrochenkov:jobdflt, r=bjorn3
JonathanBrouwer Aug 3, 2026
65fcba0
Rollup merge of #159014 - GuillaumeGomez:doc-cfg-filter-doctest, r=Urgau
JonathanBrouwer Aug 3, 2026
022e557
Rollup merge of #159303 - TaKO8Ki:fix-inline-const-generic-default-pa…
JonathanBrouwer Aug 3, 2026
5b0fc3a
Rollup merge of #159977 - amirHdev:test-123216-bool-indexing, r=petro…
JonathanBrouwer Aug 3, 2026
b9c10c5
Rollup merge of #160165 - folkertdev:reject-dotdotdot-post-expansion,…
JonathanBrouwer Aug 3, 2026
c7ac9d4
Rollup merge of #160295 - Colepng:main, r=GuillaumeGomez
JonathanBrouwer Aug 3, 2026
2ea21f6
Rollup merge of #160305 - beetrees:csky-platform-support-link, r=folk…
JonathanBrouwer Aug 3, 2026
32bb6cb
Rollup merge of #160314 - im-lunex:fix_#160255, r=TaKO8Ki
JonathanBrouwer Aug 3, 2026
0dc65e8
Rollup merge of #160322 - RalfJung:ElaborateBoxDeref, r=oli-obk
JonathanBrouwer Aug 3, 2026
dfd6095
Rollup merge of #160338 - zakrad:regr-test-61083, r=JohnTitor
JonathanBrouwer Aug 3, 2026
606566e
Rollup merge of #160340 - chenyukang:yukang-fix-143754-contract-unuse…
JonathanBrouwer Aug 3, 2026
2d1c0a8
Rollup merge of #160371 - joshtriplett:read_exact_buf_alias, r=Mark-S…
JonathanBrouwer Aug 3, 2026
861dd34
Rollup merge of #160384 - marcoieni:assign-lockfile-reviewer, r=Kobzol
JonathanBrouwer Aug 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions .github/renovate.json5
Original file line number Diff line number Diff line change
Expand Up @@ -35,19 +35,24 @@
"dependencyDashboardApproval": false
},
{
// Update all Cargo.lock files except library/Cargo.lock in one PR.
// Set defaults for all Cargo.lock files.
// library/Cargo.lock is grouped into a dedicated PR by the more
// specific rule below.
"matchManagers": ["cargo"],
"matchUpdateTypes": ["lockFileMaintenance"],
"groupName": "Cargo lock file maintenance",
"commitMessageAction": "Cargo lock file maintenance"
"commitMessageAction": "Compiler and tools lock file update",
// Renovate merges all matching rules, so the lockfiles rules below
// also inherits this note and asks Triagebot for a dep-bumps reviewer.
"prBodyNotes": ["r? dep-bumps"]
},
{
// Update library/Cargo.lock in a dedicated PR.
"matchManagers": ["cargo"],
"matchUpdateTypes": ["lockFileMaintenance"],
"matchFileNames": ["library/Cargo.lock"],
"groupName": "library lock file maintenance",
"commitMessageAction": "Library lock file maintenance"
"commitMessageAction": "Library lock file update"
},
{
// These packages don't have a committed Cargo.lock file.
Expand All @@ -63,7 +68,7 @@
"matchManagers": ["npm"],
"matchUpdateTypes": ["lockFileMaintenance"],
"groupName": "Yarn lock file maintenance",
"commitMessageAction": "Yarn lock file maintenance"
"commitMessageAction": "Yarn lock file update"
}
],
"ignorePaths": [
Expand Down
6 changes: 2 additions & 4 deletions compiler/rustc_ast/src/ast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3981,7 +3981,7 @@ pub struct Fn {
/// This function is an implementation of an externally implementable item (EII).
/// This means, there was an EII declared somewhere and this function is the
/// implementation that should be run when the declaration is called.
pub eii_impls: ThinVec<EiiImpl>,
pub eii_impl: Option<Box<EiiImpl>>,
}

impl Fn {
Expand Down Expand Up @@ -4073,9 +4073,7 @@ pub struct StaticItem {
/// This static is an implementation of an externally implementable item (EII).
/// This means, there was an EII declared somewhere and this static is the
/// implementation that should be used for the declaration.
///
/// For statics, there may be at most one `EiiImpl`, but this is a `ThinVec` to make usages of this field nicer.
pub eii_impls: ThinVec<EiiImpl>,
pub eii_impl: Option<Box<EiiImpl>>,
}

#[derive(Clone, Encodable, Decodable, Debug, Walkable)]
Expand Down
4 changes: 2 additions & 2 deletions compiler/rustc_ast/src/visit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -933,12 +933,12 @@ macro_rules! common_visitor_and_walkers {
_ctxt,
// Visibility is visited as a part of the item.
_vis,
Fn { defaultness, ident, sig, generics, contract, body, define_opaque, eii_impls },
Fn { defaultness, ident, sig, generics, contract, body, define_opaque, eii_impl },
) => {
let FnSig { header, decl, span } = sig;
visit_visitable!($($mut)? vis,
defaultness, ident, header, generics, decl,
contract, body, span, define_opaque, eii_impls
contract, body, span, define_opaque, eii_impl
);
}
FnKind::Closure(binder, coroutine_kind, decl, body) =>
Expand Down
24 changes: 11 additions & 13 deletions compiler/rustc_ast_lowering/src/item.rs
Original file line number Diff line number Diff line change
Expand Up @@ -170,15 +170,13 @@ impl<'hir> LoweringContext<'_, 'hir> {
i: &ItemKind,
) -> Vec<hir::Attribute> {
match i {
ItemKind::Fn(Fn { eii_impls, .. }) | ItemKind::Static(StaticItem { eii_impls, .. })
if eii_impls.is_empty() =>
{
Vec::new()
}
ItemKind::Fn(Fn { eii_impls, .. }) | ItemKind::Static(StaticItem { eii_impls, .. }) => {
vec![hir::Attribute::Parsed(AttributeKind::EiiImpls(
eii_impls.iter().map(|i| self.lower_eii_impl(i)).collect(),
))]
ItemKind::Fn(Fn { eii_impl: None, .. })
| ItemKind::Static(StaticItem { eii_impl: None, .. }) => Vec::new(),
ItemKind::Fn(Fn { eii_impl: Some(eii_impl), .. })
| ItemKind::Static(StaticItem { eii_impl: Some(eii_impl), .. }) => {
vec![hir::Attribute::Parsed(AttributeKind::EiiImpl(Box::new(
self.lower_eii_impl(eii_impl),
)))]
}
ItemKind::MacroDef(name, MacroDef { eii_declaration: Some(target), .. }) => self
.lower_eii_decl(id, *name, target)
Expand Down Expand Up @@ -226,7 +224,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
kind,
vis_span,
span: self.lower_span(i.span),
eii: find_attr!(attrs, EiiImpls(..) | EiiDeclaration(..)),
eii: find_attr!(attrs, EiiImpl(..) | EiiDeclaration(..)),
};
self.arena.alloc(item)
}
Expand Down Expand Up @@ -259,7 +257,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
mutability: m,
expr: e,
define_opaque,
eii_impls: _,
eii_impl: _,
}) => {
let ident = self.lower_ident(*ident);
let ty = self
Expand Down Expand Up @@ -696,7 +694,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
kind,
vis_span,
span: this.lower_span(use_tree.span()),
eii: find_attr!(attrs, EiiImpls(..) | EiiDeclaration(..)),
eii: find_attr!(attrs, EiiImpl(..) | EiiDeclaration(..)),
};
hir::OwnerNode::Item(this.arena.alloc(item))
});
Expand Down Expand Up @@ -763,7 +761,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
expr: _,
safety,
define_opaque,
eii_impls: _,
eii_impl: _,
}) => {
let ty = self
.lower_ty_alloc(ty, ImplTraitContext::Disallowed(ImplTraitPosition::StaticTy));
Expand Down
37 changes: 21 additions & 16 deletions compiler/rustc_ast_passes/src/ast_validation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -935,6 +935,13 @@ impl<'a> AstValidator<'a> {
match fn_ctxt {
FnCtxt::Foreign => return,
FnCtxt::Free | FnCtxt::Assoc(_) => {
// Reject `...` without a pattern post-expansion. The varargs_without_pattern
// FCW is already triggered pre-expansion.
if let PatKind::Missing = variadic_param.pat.kind {
self.dcx()
.emit_err(diagnostics::VarargsWithoutPattern { span: variadic_param.span });
}

match self.sess.target.supports_c_variadic_definitions() {
CVariadicStatus::NotSupported => {
self.dcx().emit_err(diagnostics::CVariadicNotSupported {
Expand Down Expand Up @@ -1259,10 +1266,10 @@ impl<'a> AstValidator<'a> {
}

// Check EII implementation attributes against an allowlist.
fn check_eii_impl_attrs(&self, attrs: &[Attribute], eii_impls: &[EiiImpl]) {
if eii_impls.is_empty() {
fn check_eii_impl_attrs(&self, attrs: &[Attribute], eii_impl: &Option<Box<EiiImpl>>) {
let Some(eii_impl) = eii_impl else {
return;
}
};

let allowed_attrs: &[Symbol] = &[
sym::allow,
Expand All @@ -1289,14 +1296,12 @@ impl<'a> AstValidator<'a> {
}

let attr_name = pprust::path_to_string(&normal.item.path);
for eii_impl in eii_impls {
self.dcx().emit_err(diagnostics::EiiImplAttributeNotSupported {
attr_span: attr.span,
attr_name: &attr_name,
eii_span: eii_impl.span,
eii_name: pprust::path_to_string(&eii_impl.eii_macro_path),
});
}
self.dcx().emit_err(diagnostics::EiiImplAttributeNotSupported {
attr_span: attr.span,
attr_name: &attr_name,
eii_span: eii_impl.span,
eii_name: pprust::path_to_string(&eii_impl.eii_macro_path),
});
}
}
}
Expand Down Expand Up @@ -1479,16 +1484,16 @@ impl Visitor<'_> for AstValidator<'_> {
contract: _,
body,
define_opaque: _,
eii_impls,
eii_impl,
},
) => {
self.visit_attrs_vis_ident(&item.attrs, &item.vis, ident);
self.check_defaultness(item.span, *defaultness, AllowDefault::No, AllowFinal::No);

for EiiImpl { eii_macro_path, .. } in eii_impls {
if let Some(EiiImpl { eii_macro_path, .. }) = eii_impl {
self.visit_path(eii_macro_path);
}
self.check_eii_impl_attrs(&item.attrs, eii_impls);
self.check_eii_impl_attrs(&item.attrs, eii_impl);

let is_intrinsic = item.attrs.iter().any(|a| a.has_name(sym::rustc_intrinsic));
if body.is_none() && !is_intrinsic && !self.is_sdylib_interface {
Expand Down Expand Up @@ -1664,9 +1669,9 @@ impl Visitor<'_> for AstValidator<'_> {

visit::walk_item(self, item);
}
ItemKind::Static(StaticItem { expr, safety, eii_impls, .. }) => {
ItemKind::Static(StaticItem { expr, safety, eii_impl, .. }) => {
self.check_item_safety(item.span, *safety);
self.check_eii_impl_attrs(&item.attrs, eii_impls);
self.check_eii_impl_attrs(&item.attrs, eii_impl);
if matches!(safety, Safety::Unsafe(_)) {
self.dcx().emit_err(diagnostics::UnsafeStatic { span: item.span });
}
Expand Down
12 changes: 12 additions & 0 deletions compiler/rustc_ast_passes/src/diagnostics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1245,3 +1245,15 @@ pub(crate) enum DeprecatedWhereClauseLocationSugg {
span: Span,
},
}

#[derive(Diagnostic)]
#[diag("missing pattern for `...` argument")]
pub(crate) struct VarargsWithoutPattern {
#[suggestion(
"add a pattern for this argument",
applicability = "machine-applicable",
code = "_: ..."
)]
#[primary_span]
pub span: Span,
}
20 changes: 10 additions & 10 deletions compiler/rustc_ast_pretty/src/pprust/state/item.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ impl<'a> State<'a> {
expr,
safety,
define_opaque,
eii_impls,
eii_impl,
}) => self.print_item_const(
*ident,
Some(*mutability),
Expand All @@ -53,7 +53,7 @@ impl<'a> State<'a> {
*safety,
ast::Defaultness::Implicit,
define_opaque.as_deref(),
eii_impls,
eii_impl.as_deref(),
),
ast::ForeignItemKind::TyAlias(ast::TyAlias {
defaultness,
Expand Down Expand Up @@ -94,10 +94,10 @@ impl<'a> State<'a> {
safety: ast::Safety,
defaultness: ast::Defaultness,
define_opaque: Option<&[(ast::NodeId, ast::Path)]>,
eii_impls: &[EiiImpl],
eii_impl: Option<&EiiImpl>,
) {
self.print_define_opaques(define_opaque);
for eii_impl in eii_impls {
if let Some(eii_impl) = eii_impl {
self.print_eii_impl(eii_impl);
}
let (cb, ib) = self.head("");
Expand Down Expand Up @@ -196,7 +196,7 @@ impl<'a> State<'a> {
mutability: mutbl,
expr: body,
define_opaque,
eii_impls,
eii_impl,
}) => {
self.print_safety(*safety);
self.print_item_const(
Expand All @@ -209,7 +209,7 @@ impl<'a> State<'a> {
ast::Safety::Default,
ast::Defaultness::Implicit,
define_opaque.as_deref(),
eii_impls,
eii_impl.as_deref(),
);
}
ast::ItemKind::ConstBlock(ast::ConstBlockItem { id: _, span: _, block }) => {
Expand Down Expand Up @@ -242,7 +242,7 @@ impl<'a> State<'a> {
ast::Safety::Default,
*defaultness,
define_opaque.as_deref(),
&[],
None,
);
}
ast::ItemKind::Fn(func) => {
Expand Down Expand Up @@ -631,7 +631,7 @@ impl<'a> State<'a> {
ast::Safety::Default,
*defaultness,
define_opaque.as_deref(),
&[],
None,
);
}
ast::AssocItemKind::Type(ast::TyAlias {
Expand Down Expand Up @@ -731,12 +731,12 @@ impl<'a> State<'a> {
}

fn print_fn_full(&mut self, vis: &ast::Visibility, attrs: &[ast::Attribute], func: &ast::Fn) {
let ast::Fn { defaultness, ident, generics, sig, contract, body, define_opaque, eii_impls } =
let ast::Fn { defaultness, ident, generics, sig, contract, body, define_opaque, eii_impl } =
func;

self.print_define_opaques(define_opaque.as_deref());

for eii_impl in eii_impls {
if let Some(eii_impl) = eii_impl {
self.print_eii_impl(eii_impl);
}

Expand Down
7 changes: 5 additions & 2 deletions compiler/rustc_borrowck/src/diagnostics/conflict_errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4277,7 +4277,8 @@ impl<'diag, 'tcx> MirBorrowckCtxt<'_, 'diag, 'tcx> {
) -> Option<AnnotatedBorrowFnSignature<'tcx>> {
// Define a fallback for when we can't match a closure.
let fallback = || {
let is_closure = self.infcx.tcx.is_closure_like(self.mir_def_id().to_def_id());
let tcx = self.infcx.tcx;
let is_closure = tcx.is_closure_like(self.mir_def_id().to_def_id());
if is_closure {
None
} else {
Expand All @@ -4288,14 +4289,16 @@ impl<'diag, 'tcx> MirBorrowckCtxt<'_, 'diag, 'tcx> {
.instantiate_identity()
.skip_norm_wip();
match ty.kind() {
ty::FnDef(_, _) | ty::FnPtr(..) => self.annotate_fn_sig(
ty::FnDef(_, _) => self.annotate_fn_sig(
self.mir_def_id(),
self.infcx
.tcx
.fn_sig(self.mir_def_id())
.instantiate_identity()
.skip_norm_wip(),
),
// a const/static can have a fn ptr type, take the sig from the type instead.
ty::FnPtr(_, _) => self.annotate_fn_sig(self.mir_def_id(), ty.fn_sig(tcx)),
_ => None,
}
}
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_builtin_macros/src/alloc_error_handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ fn generate_handler(cx: &ExtCtxt<'_>, handler: Ident, span: Span, sig_span: Span
contract: None,
body,
define_opaque: None,
eii_impls: ThinVec::new(),
eii_impl: None,
}));

let attrs = thin_vec![cx.attr_word(sym::rustc_std_internal_symbol, span)];
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_builtin_macros/src/autodiff.rs
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ mod llvm_enzyme {
contract: None,
body: Some(d_body),
define_opaque: None,
eii_impls: ThinVec::new(),
eii_impl: None,
});
let mut rustc_ad_attr =
Box::new(ast::NormalAttr::from_ident(Ident::with_dummy_span(sym::rustc_autodiff)));
Expand Down
2 changes: 1 addition & 1 deletion compiler/rustc_builtin_macros/src/deriving/generic/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1083,7 +1083,7 @@ impl<'a> MethodDef<'a> {
contract: None,
body: Some(body_block),
define_opaque: None,
eii_impls: ThinVec::new(),
eii_impl: None,
})),
tokens: None,
})
Expand Down
Loading
Loading