rust/compiler/rustc_lint/src
Jubilee Young 7086dd83cc compiler: rustc_abi::Abi => BackendRepr
The initial naming of "Abi" was an awful mistake, conveying wrong ideas
about how psABIs worked and even more about what the enum meant.
It was only meant to represent the way the value would be described to
a codegen backend as it was lowered to that intermediate representation.
It was never meant to mean anything about the actual psABI handling!
The conflation is because LLVM typically will associate a certain form
with a certain ABI, but even that does not hold when the special cases
that actually exist arise, plus the IR annotations that modify the ABI.

Reframe `rustc_abi::Abi` as the `BackendRepr` of the type, and rename
`BackendRepr::Aggregate` as `BackendRepr::Memory`. Unfortunately, due to
the persistent misunderstandings, this too is now incorrect:
- Scattered ABI-relevant code is entangled with BackendRepr
- We do not always pre-compute a correct BackendRepr that reflects how
  we "actually" want this value to be handled, so we leave the backend
  interface to also inject various special-cases here
- In some cases `BackendRepr::Memory` is a "real" aggregate, but in
  others it is in fact using memory, and in some cases it is a scalar!

Our rustc-to-backend lowering code handles this sort of thing right now.
That will eventually be addressed by lifting duplicated lowering code
to either rustc_codegen_ssa or rustc_target as appropriate.
2024-10-29 14:56:00 -07:00
..
context Reserve guarded string literals (RFC 3593) 2024-10-08 18:21:16 -06:00
nonstandard_style mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
types compiler: Depend on rustc_abi in rustc_lint 2024-10-27 23:59:31 -07:00
async_closures.rs docs: Enable required feature for 'closure_returning_async_block' lint 2024-09-14 10:43:26 +02:00
async_fn_in_trait.rs nightly feature tracking: get rid of the per-feature bool fields 2024-10-23 09:14:41 +01:00
builtin.rs compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
context.rs Rollup merge of #132249 - workingjubilee:add-rustc-abi, r=compiler-errors 2024-10-28 10:18:50 -07:00
dangling.rs New lint: dangling_pointers_from_temporaries 2024-10-28 14:16:05 +03:00
deref_into_dyn_supertrait.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
drop_forget_useless.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
early.rs Clean up some comments on lint implementation 2024-10-27 04:30:51 -07:00
enum_intrinsics_non_enums.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
errors.rs Add warn(unreachable_pub) to rustc_lint. 2024-08-27 15:24:11 +10:00
expect.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
for_loops_over_fallibles.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
foreign_modules.rs compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
hidden_unicode_codepoints.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
if_let_rescope.rs nightly feature tracking: get rid of the per-feature bool fields 2024-10-23 09:14:41 +01:00
impl_trait_overcaptures.rs nightly feature tracking: get rid of the per-feature bool fields 2024-10-23 09:14:41 +01:00
internal.rs Auto merge of #132190 - matthiaskrgr:rollup-rsocfiz, r=matthiaskrgr 2024-10-26 19:00:57 +00:00
invalid_from_utf8.rs Remove extern crate rustc_session from rustc_lint. 2024-04-29 13:57:41 +10:00
late.rs Clean up some comments on lint implementation 2024-10-27 04:30:51 -07:00
let_underscore.rs Fix the misleading diagnostic for let_underscore_drop on type without Drop implementation 2024-09-26 10:18:18 +08:00
levels.rs Auto merge of #125116 - blyxyas:ignore-allowed-lints-final, r=cjgillot 2024-10-26 16:37:43 +00:00
lib.rs Auto merge of #128985 - GrigorenkoPV:instantly-dangling-pointer, r=Urgau 2024-10-29 00:24:07 +00:00
lints.rs New lint: dangling_pointers_from_temporaries 2024-10-28 14:16:05 +03:00
macro_expr_fragment_specifier_2024_migration.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
map_unit_fn.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
multiple_supertrait_upcastable.rs Compiler: Rename "object safe" to "dyn compatible" 2024-09-25 13:26:48 +02:00
non_ascii_idents.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
non_fmt_panic.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
non_local_def.rs Also use outermost const-anon for impl items in non_local_defs lint 2024-10-13 18:14:29 +02:00
nonstandard_style.rs Remove associated type based effects logic 2024-10-24 09:46:36 +00:00
noop_method_call.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
opaque_hidden_inferred_bound.rs rm ItemKind::OpaqueTy 2024-10-04 23:28:22 +00:00
pass_by_value.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
passes.rs Auto merge of #125116 - blyxyas:ignore-allowed-lints-final, r=cjgillot 2024-10-26 16:37:43 +00: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 using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
reference_casting.rs Use bool in favor of Option<()> for diagnostics 2024-08-21 01:31:11 -04:00
shadowed_into_iter.rs Move COGNITIVE_COMPLEXITY to use macro again 2024-10-21 19:27:34 +02:00
static_mut_refs.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
tail_expr_drop_order.rs stabilize shorter-tail-lifetimes 2024-10-24 01:56:08 +08:00
tests.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
traits.rs Represent TraitBoundModifiers as distinct parts in HIR 2024-10-22 19:48:44 +00:00
types.rs compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
unit_bindings.rs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
unqualified_local_imports.rs add unqualified_local_imports lint 2024-09-23 11:57:28 +02:00
unused.rs Auto merge of #125116 - blyxyas:ignore-allowed-lints-final, r=cjgillot 2024-10-26 16:37:43 +00:00