rust/compiler/rustc_session
Jacob Pratt 28435f8885
Rollup merge of #149662 - JonathanBrouwer:lint-rework, r=jdonszelmann
Move attribute lints to `rustc_lint`

This PR changes two things:
- This decouples the `AttributeLintKind` from the `Lint` it is emitted in. `cx.emit_lint` now takes both as an argument, rather than inferring the `Lint` from the `AttributeLintKind`. This is nice because:
  - It allows us to remove `AttributeLintKind::InvalidMacroExportArguments`
  - It allows us to move the choice between `USELESS_DEPRECATED` and `UNUSED_ATTRIBUTES` out of the lint emitting code
  - It allows the next change:
- This moves `AttributeLintKind` to `rustc_lint_defs`, and the decorating code to `rustc_lint`. This is nice because:
  - It allows attribute lint decorating code to access the TypeCtxt, which unblocks https://github.com/rust-lang/rust/pull/149215
  - It might allow most early buffered attribute lints to become dyn lint diagnostics in the future, as in https://github.com/rust-lang/rust/pull/147634
  - It deduplicates `IllFormedAttributeInput`

This PR does not change observable output of the compiler, as can be seen by no uitests being affected.

r? `@jdonszelmann`
2025-12-05 23:26:38 -05:00
..
src Rollup merge of #149662 - JonathanBrouwer:lint-rework, r=jdonszelmann 2025-12-05 23:26:38 -05:00
Cargo.toml Unpin libc in compiler and rustbook 2025-10-31 19:13:45 +00:00
messages.ftl Better warning message for crate type unsupported by codegen backend 2025-11-02 12:33:38 +00:00