SIGN IN SIGN UP
rust-lang / rust UNCLAIMED

Empowering everyone to build reliable and efficient software.

0 0 124 Rust

Rollup merge of #155193 - JonathanBrouwer:args_used_check, r=jdonszelmann

Check arguments of attributes where no arguments are expected

This PR does the following:
- Add a debug assertion to `rustc_attr_parsing`, to ensure we never forget to check the arguments of a meta item again
- Removes the unused `#[derive(Clone)]` from `ArgParser` as that would break this debug assertion
- **[BREAKING]** Properly check that `#[inline(always(...))]` gets no arguments
- **[BREAKING]** Properly check that `#[instruction_set(arm::a32(...))]` gets no arguments
- **[BREAKING]** Properly check that `#[macro_export(local_inner_macros(...))]` gets no arguments.
  Fixes https://github.com/rust-lang/rust/issues/154977
- **[BREAKING]** Properly check that `#[used(compiler(...))]` gets no arguments.
- Properly check that `#[optimize(size(...))]` gets no arguments.
- Properly check that `#[coverage(on(...))]` gets no arguments.
- Properly check that `#[rustc_dump_layout(debug(...))]` gets no arguments.
- Properly check that `#[rustc_abi(debug(...))]` gets no arguments.
- Properly check that `#![test_runner(arg(...))]` gets no arguments.
- Properly check that `#[rustc_must_implement_one_of(arg(...))]` gets no arguments.
- Properly check that `#[allow_internal_unstable(arg(...))]` gets no arguments.
- Properly check that `#[unstable_feature_bound(arg(...))]` gets no arguments.
- Properly check that `#[rustc_allow_const_fn_unstable(arg(...))]` gets no arguments.
- Properly check that `#[rustc_if_this_changed(arg(...))]` gets no arguments.
- Properly check that `#[rustc_then_this_would_need(arg(...))]` gets no arguments.

r? @jdonszelmann
J
Jonathan Brouwer committed
bdb51ea8ea2595d1b77fcf2a3dd721ff0da3996f
Committed by GitHub <noreply@github.com> on 6/1/2026, 5:35:43 PM