Uh oh!
There was an error while loading. Please reload this page.
MGCA: Syntactically distinguish anon const const args - #149136
Conversation
rustbot
commented
Nov 20, 2025
Some changes occurred in compiler/rustc_builtin_macros/src/autodiff.rs cc @ZuseZ4 |
rustbot
commented
Nov 20, 2025
|
This comment has been minimized.
This comment has been minimized.
Uh oh!
There was an error while loading. Please reload this page.
a786e30 to
09d75e3Compare
This comment has been minimized.
This comment has been minimized.
09d75e3 to
5c64af2Comparerustbot
commented
Nov 21, 2025
Some changes occurred in src/tools/clippy cc @rust-lang/clippy |
bors
commented
Nov 27, 2025
☔ The latest upstream changes (presumably #149387) made this pull request unmergeable. Please resolve the merge conflicts. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
5c64af2 to
8f74277Compare
This comment has been minimized.
This comment has been minimized.
Uh oh!
There was an error while loading. Please reload this page.
oli-obk
commented
Dec 10, 2025
r=me with commits cleaned up |
8f74277 to
0c86a41CompareBoxyUwU
commented
Dec 10, 2025
@bors r=oli-obk rollup=never |
bors
commented
Dec 10, 2025
bors
commented
Dec 12, 2025
BoxyUwU
commented
Dec 12, 2025
@bors r- actually should wait for CI to pass given rebase |
BoxyUwU
commented
Dec 12, 2025
@bors r=oli-obk |
bors
commented
Dec 12, 2025
bors
commented
Dec 12, 2025
bors
commented
Dec 13, 2025
☀️ Test successful - checks-actions |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing fa5eda1 (parent) -> dc47a69 (this PR) Test differencesShow 56 test diffsStage 1
Stage 2
Additionally, 42 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard dc47a69ed94bc88b10b7d500cceacf29b87bcbbe --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
rust-timer
commented
Dec 13, 2025
Finished benchmarking commit (dc47a69): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)Results (secondary 0.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary -4.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 473.976s -> 475.622s (0.35%) |
…li-obk dont create unnecessary `DefId`s under mgca Fixesrust-lang#149977Fixesrust-lang#148838 Accidentally left this out of rust-lang#149136 even though being able to do this was a large part of the point of the PR :3 First ICE was caused by the fact that we create a defid but never lower the nodeid associated with it to a hirid which later parts of the compiler can't handle. See test for second ICE r? oli-obk
Rollup merge of #150025 - BoxyUwU:mgca_no_unused_defids, r=oli-obk dont create unnecessary `DefId`s under mgca Fixes#149977Fixes#148838 Accidentally left this out of #149136 even though being able to do this was a large part of the point of the PR :3 First ICE was caused by the fact that we create a defid but never lower the nodeid associated with it to a hirid which later parts of the compiler can't handle. See test for second ICE r? oli-obk
dont create unnecessary `DefId`s under mgca Fixesrust-lang/rust#149977Fixesrust-lang/rust#148838 Accidentally left this out of rust-lang/rust#149136 even though being able to do this was a large part of the point of the PR :3 First ICE was caused by the fact that we create a defid but never lower the nodeid associated with it to a hirid which later parts of the compiler can't handle. See test for second ICE r? oli-obk
r? oli-obk
tracking issue: #132980
This PR requires that when
feature(min_generic_const_args)is enabled, anon const const args are syntactically distinguishable from other kinds of args. We useconst { ... }in const argument position to denote an anon const:This restriction is only placed when mgca is enabled. There should be no effect on stable. This restriction is not enforced for unbraced literals which we continue to implicitly wrap in an anon const:
tests/ui/const-generics/mgca/explicit_anon_consts_literals_hack.rsThis restriction allows us to create
DefIds for anon consts only when actually required. When it is syntactically ambiguous whether a const argument is an anon const or not we are forced to conservatively create aDefIdfor every const argument even if it doesn't wind up needing one.This works fine on stable but under
mgcawe can wind up with anon consts nested inside non-anon-const const arguments resulting in a brokenDefIdtree. See #148838 where an anon const arg inside of a path arg winds up with a parent of a conservatively createdDefIdthat doesn't actually correspond to an anon const, resulting in an ICE.With #149114 every field initialiser in a const argument would become a place where there could possibly be an anon const. This would also get worse once we support tuple constructors- now every function argument is a place where there could possibly be an anon const.
We introduce this restriction to avoid creating massive amounts of unused
DefIds that make the parent tree significantly more complicated, and to avoid having to paper over this issue in things likegenerics_of.Fixes#148838
It also must be syntactically clear from context whether
'_means an inference lifetime or an elided lifetime parameter. This restriction will allow us to properly resolve'_in const arguments in mgca. This PR doesn't actually fix handle this, but we could do so trivially after this lands.