Tracking issue for future-incompatibility lint `ill_formed_attribute_input`
What is this lint about
Previously inputs for many built-in attributes weren't validated and nonsensical attributes like #[no_std(arbitraty, string = "foo")] were accepted.
#57321 introduced a check for top-level shape (#[attr] vs #[attr(...)] vs #[attr = ...]) for built-in attributes that produces an error by default, but produces a warning for incorrect attribute forms available on stable that were actually encountered in practice (during crater run).
Currently the list is
#[doc] #[ignore(...)] #[inline = "..."] #[link] #[link = "..."]
, but it can be extended if more regressions are reported.
How to fix this warning/error
Use one of the correct attribute forms suggested by the compiler.
Current status
- Implement basic input validation for built-in attributes #57321 introduces the
ill_formed_attribute_inputlint as warn-by-default - Transition future compat lints to {ERROR, DENY} - Take 2 #65785 makes the
ill_formed_attribute_inputlint deny-by-default - Start reporting future breakage for
ILL_FORMED_ATTRIBUTE_INPUTin dependencies #144544 warns in dependencies - PR ? makes the
ill_formed_attribute_inputlint a hard error