rust/compiler/rustc_lint/src
bors 4c5fc2c334 Auto merge of #130050 - cjgillot:expect-attr-id, r=fee1-dead
Enumerate lint expectations using AttrId

This PR implements the idea I outlined in https://github.com/rust-lang/rust/issues/127884#issuecomment-2240338547

We can uniquely identify a lint expectation `#[expect(lint0, lint1...)]` using the `AttrId` and the index of the lint inside the attribute. This PR uses this property in `check_expectations`.

In addition, this PR stops stashing expected diagnostics to wait for the unstable -> stable `LintExpectationId` mapping: if the lint is emitted with an unstable attribute, it must have been emitted by an `eval_always` query (like inside the resolver), so won't be loaded from cache. Decoding an `AttrId` from the on-disk cache ICEs, so we have no risk of accidentally checking an expectation.

Fixes https://github.com/rust-lang/rust/issues/127884

cc `@xFrednet`
2024-09-11 04:49:56 +00:00
..
context Rollup merge of #126452 - compiler-errors:raw-lifetimes, r=spastorino 2024-09-07 23:30:10 +02:00
nonstandard_style mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
async_closures.rs Make it into a structured suggestion, maybe-incorrect 2024-06-28 20:16:35 -04:00
async_fn_in_trait.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
builtin.rs Auto merge of #130025 - Urgau:missing_docs-expect, r=petrochenkov 2024-09-10 14:54:09 +00:00
context.rs Make Span optional in BufferedEarlyLint 2024-08-07 14:08:34 +02:00
deref_into_dyn_supertrait.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
drop_forget_useless.rs Fix handling of macro arguments within the `dropping_copy_types lint 2024-08-22 13:32:01 +02:00
early.rs Add warn(unreachable_pub) to rustc_lint. 2024-08-27 15:24:11 +10:00
enum_intrinsics_non_enums.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
errors.rs Add warn(unreachable_pub) to rustc_lint. 2024-08-27 15:24:11 +10:00
expect.rs Check AttrId for expectations. 2024-09-06 20:51:06 +00:00
for_loops_over_fallibles.rs Use is_lang_item more 2024-08-13 16:44:53 -04:00
foreign_modules.rs Don't use TyKind in lint 2024-08-24 17:16:39 -04:00
hidden_unicode_codepoints.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
impl_trait_overcaptures.rs Review comments 2024-09-05 06:34:42 -04:00
internal.rs Add an internal lint that warns when accessing untracked data 2024-09-03 19:14:19 +02:00
invalid_from_utf8.rs Remove extern crate rustc_session from rustc_lint. 2024-04-29 13:57:41 +10:00
late.rs Add warn(unreachable_pub) to rustc_lint. 2024-08-27 15:24:11 +10:00
let_underscore.rs rustc_lint: make let-underscore-lock translatable 2024-07-30 00:34:27 +03:00
levels.rs Simplify lint source computation. 2024-08-31 14:02:27 +00:00
lib.rs Auto merge of #129999 - matthiaskrgr:rollup-pzr9c8p, r=matthiaskrgr 2024-09-06 03:06:52 +00:00
lints.rs Rollup merge of #126452 - compiler-errors:raw-lifetimes, r=spastorino 2024-09-07 23:30:10 +02:00
macro_expr_fragment_specifier_2024_migration.rs Insert some blank lines. 2024-07-30 07:25:15 +10:00
map_unit_fn.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
methods.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
multiple_supertrait_upcastable.rs Stop using ty::GenericPredicates for non-predicates_of queries 2024-08-29 00:17:40 -04:00
non_ascii_idents.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
non_fmt_panic.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
non_local_def.rs chore: Fix typos in 'compiler' (batch 1) 2024-09-02 07:42:38 +02:00
nonstandard_style.rs Add warn(unreachable_pub) to rustc_lint. 2024-08-27 15:24:11 +10:00
noop_method_call.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
opaque_hidden_inferred_bound.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
pass_by_value.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
passes.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
precedence.rs Temporarily switch ambiguous_negative_literals lint to allow 2024-07-31 19:36:47 +02:00
ptr_nulls.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
redundant_semicolon.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
reference_casting.rs Use bool in favor of Option<()> for diagnostics 2024-08-21 01:31:11 -04:00
shadowed_into_iter.rs Make Ty::boxed_ty return an Option 2024-09-06 00:30:36 +03:00
tail_expr_drop_order.rs lint on tail expr drop order change in Edition 2024 2024-08-21 01:05:21 +08:00
tests.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
traits.rs Use is_lang_item more 2024-08-13 16:44:53 -04:00
types.rs Make Ty::boxed_ty return an Option 2024-09-06 00:30:36 +03:00
unit_bindings.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
unused.rs Make Ty::boxed_ty return an Option 2024-09-06 00:30:36 +03:00