Skip to content

rename GCA features - #163306

Merged
rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
khyperia:gca-rename
Sep 25, 2026
Merged

rust-bors[bot] merged 1 commit into
rust-lang:mainfrom
khyperia:gca-rename

Conversation

@khyperia

@khyperia khyperia commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

fixes rust-lang/project-const-generics#114

We would like to publish posts soon that GCE is dying and GCA is the future. As part of that, we want the feature gates/etc. to be in their final-ish shape. We discussed a lot of naming bikesheds in the zulip thread #project-const-generics > talkies at last @ 💬, namely:

  • min_generic_const_args -> gca_min_const_items
  • generic_const_args -> gca_const_items
  • macroless_generic_const_args -> gca_macroless_args
  • macroless_const_item_generic_const_args -> gca_macroless_items

things that were discussed in that Zulip thread, but are not part of this PR:

  • gca_adts and/or gca_arrays (the feature is not created yet)
    • the DirectConstArgContext enum is in a vaguely awkwardly named spot after this PR. I intend to clean it up as part of creating the gca_adts feature (perhaps turning it into a bitflags for allowed syntax, or something)
  • renaming the direct_const_arg! macro to gca! - this was done in rename direct_const_arg! to gca! #163198
  • deleting type const, introducing #[always_gca] - this was done in yeet type const #162517

r? @BoxyUwU

@rustbot

rustbot commented Sep 25, 2026

Copy link
Copy Markdown
Collaborator

HIR ty lowering was modified

cc @fmease

Some changes occurred in const_evaluatable.rs

cc @BoxyUwU

The rustc-dev-guide subtree was changed. If your future PRs only touch the subtree, consider submitting them directly to rust-lang/rustc-dev-guide, which is where the document is primarily maintained (and has faster CI).

cc @BoxyUwU, @tshepang

rust-analyzer is developed in its own repository. If possible, consider making this change to rust-lang/rust-analyzer instead.

cc @rust-lang/rust-analyzer

This PR changes a file inside tests/crashes. If a crash was fixed, please move into the corresponding ui subdir and add 'Fixes #' to the PR description to autoclose the issue upon merge.

changes to the core type system

cc @lcnr

rustfmt is developed in its own repository. If possible, consider making this change to rust-lang/rustfmt instead.

cc @rust-lang/rustfmt

Some changes occurred in match checking

cc @Nadrieril

Some changes occurred in compiler/rustc_attr_parsing

cc @jdonszelmann, @JonathanBrouwer

The parser was modified, potentially altering the grammar of (stable) Rust
which would be a breaking change.

cc @fmease

clippy is developed in its own repository. If possible, consider making this change to rust-lang/rust-clippy instead.

cc @rust-lang/clippy

@rustbot

rustbot commented Sep 25, 2026

Copy link
Copy Markdown
Collaborator

BoxyUwU is currently at their maximum review capacity.
They may take a while to respond.

@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-rustc-dev-guide Area: rustc-dev-guide S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Sep 25, 2026
Comment thread src/tools/rust-analyzer/crates/ide-db/src/generated/lints.rs
@BoxyUwU

BoxyUwU commented Sep 25, 2026

Copy link
Copy Markdown
Member

@bors r+ p=1

@rust-bors

rust-bors Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

📌 Commit eef103d has been approved by BoxyUwU

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 25, 2026
@BoxyUwU

BoxyUwU commented Sep 25, 2026

Copy link
Copy Markdown
Member

ah wait @bors r-

can you add the renamed features to removed.rs
cc https://rustc-dev-guide.rust-lang.org/feature-gates.html?highlight=removing#renaming-a-feature-gate

@rust-bors rust-bors Bot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 25, 2026
@rust-bors

rust-bors Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved.

View changes since this unapproval

@BoxyUwU

BoxyUwU commented Sep 25, 2026

Copy link
Copy Markdown
Member

r=me after above :>

@khyperia

Copy link
Copy Markdown
Member Author

@bors r=BoxyUwU p=1

trying out the fancy new "approve when ci passes" functionality~

@rust-bors

rust-bors Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

⌛ Commit 88f1088 has been tentatively approved by BoxyUwU. It will be fully approved once PR CI is successful.

@rust-bors rust-bors Bot added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Sep 25, 2026
@rust-bors rust-bors Bot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 25, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 25, 2026
@rust-bors

rust-bors Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: BoxyUwU
Duration: Unknown duration
Pushing 5ceaf66 to main...

@rust-bors
rust-bors Bot merged commit 5ceaf66 into rust-lang:main Sep 25, 2026
14 checks passed
@rustbot rustbot added this to the 1.100.0 milestone Sep 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor
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 ecd8f1d (parent) -> 5ceaf66 (this PR)

Test differences

Show 55 test diffs

Stage 1

  • [ui] tests/ui/const-generics/renamed-feature-gates.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/suggest_const_for_array.rs#gca_const_items: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/suggest_const_for_array.rs#gca_min_const_items: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/suggest_const_for_array.rs#generic_const_args: pass -> [missing] (J0)
  • [ui] tests/ui/const-generics/suggest_const_for_array.rs#min_generic_const_args: pass -> [missing] (J0)
  • [ui] tests/ui/feature-gates/feature-gate-gca-const-items.rs: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/feature-gate-gca-macroless-args.rs: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/feature-gate-gca-macroless-items.rs#macroful: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/feature-gate-gca-macroless-items.rs#macroless: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/feature-gate-gca-min-const-items.rs: [missing] -> pass (J0)
  • [ui] tests/ui/feature-gates/feature-gate-generic-const-args.rs: pass -> [missing] (J0)
  • [ui] tests/ui/feature-gates/feature-gate-macroless-generic-const-args.rs: pass -> [missing] (J0)
  • [ui] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroful: pass -> [missing] (J0)
  • [ui] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroless: pass -> [missing] (J0)
  • [ui] tests/ui/feature-gates/feature-gate-min-generic-const-args.rs: pass -> [missing] (J0)
  • [ui] tests/ui/traits/associated_type_bound/gca-min-const-items-default.rs: [missing] -> pass (J0)
  • [ui] tests/ui/traits/associated_type_bound/generic-const-args-default.rs: pass -> [missing] (J0)
  • [ui (polonius)] tests/ui/const-generics/renamed-feature-gates.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/const-generics/suggest_const_for_array.rs#gca_const_items: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/const-generics/suggest_const_for_array.rs#gca_min_const_items: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/const-generics/suggest_const_for_array.rs#generic_const_args: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/const-generics/suggest_const_for_array.rs#min_generic_const_args: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-gca-const-items.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-gca-macroless-args.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-gca-macroless-items.rs#macroful: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-gca-macroless-items.rs#macroless: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-gca-min-const-items.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-generic-const-args.rs: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-macroless-generic-const-args.rs: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroful: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroless: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-min-generic-const-args.rs: pass -> [missing] (J2)
  • [ui (polonius)] tests/ui/traits/associated_type_bound/gca-min-const-items-default.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/traits/associated_type_bound/generic-const-args-default.rs: pass -> [missing] (J2)

Stage 2

  • [ui] tests/ui/const-generics/renamed-feature-gates.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/suggest_const_for_array.rs#gca_const_items: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/suggest_const_for_array.rs#gca_min_const_items: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/suggest_const_for_array.rs#generic_const_args: pass -> [missing] (J1)
  • [ui] tests/ui/const-generics/suggest_const_for_array.rs#min_generic_const_args: pass -> [missing] (J1)
  • [ui] tests/ui/feature-gates/feature-gate-gca-const-items.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-gca-macroless-args.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-gca-macroless-items.rs#macroful: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-gca-macroless-items.rs#macroless: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-gca-min-const-items.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-generic-const-args.rs: pass -> [missing] (J1)
  • [ui] tests/ui/feature-gates/feature-gate-macroless-generic-const-args.rs: pass -> [missing] (J1)
  • [ui] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroful: pass -> [missing] (J1)
  • [ui] tests/ui/feature-gates/feature-gate-macroless_const_item_generic_const_args.rs#macroless: pass -> [missing] (J1)
  • [ui] tests/ui/feature-gates/feature-gate-min-generic-const-args.rs: pass -> [missing] (J1)
  • [ui] tests/ui/traits/associated_type_bound/gca-min-const-items-default.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/associated_type_bound/generic-const-args-default.rs: pass -> [missing] (J1)

Additionally, 4 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 5ceaf6608eb354c2f5bbb3b8d974caa367dac81c --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. test-armhf-gnu: 56m 15s -> 1h 40m (+79.2%)
  2. dist-loongarch64-linux: 1h 14m -> 2h 8m (+73.6%)
  3. dist-s390x-linux: 1h 1m -> 1h 34m (+53.7%)
  4. dist-arm-linux-musl: 1h 9m -> 1h 44m (+49.8%)
  5. test-x86_64-gnu-llvm-22-2: 1h 12m -> 1h 46m (+47.8%)
  6. test-x86_64-gnu-llvm-21-1: 45m -> 1h 3m (+40.7%)
  7. dist-armhf-linux: 1h 8m -> 1h 35m (+38.9%)
  8. dist-ohos-aarch64: 1h -> 1h 22m (+37.3%)
  9. test-x86_64-gnu-stable: 1h 59m -> 2h 40m (+34.4%)
  10. test-i686-gnu-nopt-1: 2h 22m -> 1h 34m (-33.8%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (5ceaf66): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.7% [0.5%, 0.8%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.0% [-1.0%, -0.9%] 6
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 1.3%, secondary 1.8%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
1.3% [1.3%, 1.3%] 1
Regressions ❌
(secondary)
1.8% [0.7%, 2.9%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.3% [1.3%, 1.3%] 1

Cycles

Results (primary -2.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.7% [-2.7%, -2.7%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -2.7% [-2.7%, -2.7%] 1

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 490.913s -> 488.629s (-0.47%)
Artifact size: 406.29 MiB -> 406.21 MiB (-0.02%)

@rustbot rustbot added the perf-regression Performance regression. label Sep 25, 2026
BKTB888 added a commit to BKTB888/General_MiniMax that referenced this pull request Sep 26, 2026
Nightly renamed them in rust-lang/rust#163306:
generic_const_args -> gca_const_items,
min_generic_const_args -> gca_min_const_items,
macroless_generic_const_args -> gca_macroless_args.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-rustc-dev-guide Area: rustc-dev-guide merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. T-clippy Relevant to the Clippy team. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rust-analyzer Relevant to the rust-analyzer team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Work Item]: Rename various feature gates

5 participants