rust/compiler
bors 361c599fee Auto merge of #98655 - nnethercote:dont-derive-PartialEq-ne, r=dtolnay
Don't derive `PartialEq::ne`.

Currently we skip deriving `PartialEq::ne` for C-like (fieldless) enums
and empty structs, thus reyling on the default `ne`. This behaviour is
unnecessarily conservative, because the `PartialEq` docs say this:

> Implementations must ensure that eq and ne are consistent with each other:
>
> `a != b` if and only if `!(a == b)` (ensured by the default
> implementation).

This means that the default implementation (`!(a == b)`) is always good
enough. So this commit changes things such that `ne` is never derived.

The motivation for this change is that not deriving `ne` reduces compile
times and binary sizes.

Observable behaviour may change if a user has defined a type `A` with an
inconsistent `PartialEq` and then defines a type `B` that contains an
`A` and also derives `PartialEq`. Such code is already buggy and
preserving bug-for-bug compatibility isn't necessary.

Two side-effects of the change:
- There is only one error message produced for types where `PartialEq`
  cannot be derived, instead of two.
- For coverage reports, some warnings about generated `ne` methods not
  being executed have disappeared.

Both side-effects seem fine, and possibly preferable.
2022-08-18 10:11:11 +00:00
..
rustc
rustc_apfloat
rustc_arena Stabilize ptr_const_cast 2022-08-10 17:22:58 +02:00
rustc_ast Rollup merge of #100018 - nnethercote:clean-up-LitKind, r=petrochenkov 2022-08-17 12:32:49 +02:00
rustc_ast_lowering Rollup merge of #100018 - nnethercote:clean-up-LitKind, r=petrochenkov 2022-08-17 12:32:49 +02:00
rustc_ast_passes Adjust cfgs 2022-08-12 16:28:15 -04:00
rustc_ast_pretty Rollup merge of #100018 - nnethercote:clean-up-LitKind, r=petrochenkov 2022-08-17 12:32:49 +02:00
rustc_attr Adjust cfgs 2022-08-12 16:28:15 -04:00
rustc_borrowck Fix #95079 by adding help and suggestion for missing move in nested closure 2022-08-15 11:20:32 -07:00
rustc_builtin_macros Auto merge of #98655 - nnethercote:dont-derive-PartialEq-ne, r=dtolnay 2022-08-18 10:11:11 +00:00
rustc_codegen_cranelift also update anyhow in codegen_cranelift 2022-08-08 09:04:26 -04:00
rustc_codegen_gcc
rustc_codegen_llvm Rollup merge of #100460 - cuviper:drop-llvm-12, r=nagisa 2022-08-16 06:05:57 +02:00
rustc_codegen_ssa Rollup merge of #100379 - davidtwco:triagebot-diag, r=Mark-Simulacrum 2022-08-17 12:32:50 +02:00
rustc_const_eval Rollup merge of #99972 - RalfJung:1zst, r=lcnr 2022-08-17 12:32:48 +02:00
rustc_data_structures needless separation of impl blocks 2022-08-16 03:46:45 +02:00
rustc_driver
rustc_error_codes
rustc_error_messages Rollup merge of #100674 - PragmaTwice:mig-typeck-unused-crate-diag, r=davidtwco 2022-08-18 05:10:50 +02:00
rustc_errors Rollup merge of #100651 - nidnogg:diagnostics_migration_expand_transcribe, r=davidtwco 2022-08-18 05:10:47 +02:00
rustc_expand Rollup merge of #100669 - nnethercote:attribute-cleanups, r=spastorino 2022-08-18 05:10:48 +02:00
rustc_feature Add missing closing quote 2022-08-15 15:57:55 +08:00
rustc_fs_util
rustc_graphviz
rustc_hir Rollup merge of #100610 - nnethercote:ast-and-parser-tweaks, r=spastorino 2022-08-16 18:16:13 +05:30
rustc_hir_pretty Rename some things related to literals. 2022-08-16 13:41:34 +10:00
rustc_incremental
rustc_index debuginfo: Change C++-like encoding for enums. 2022-08-12 10:53:07 +02:00
rustc_infer ty::Error does not match other types for region constraints 2022-08-17 17:23:52 +00:00
rustc_interface Migrate emoji identifier diagnostics to SessionDiagnostic 2022-08-17 05:07:47 +09:00
rustc_lexer
rustc_lint Rename some things related to literals. 2022-08-16 13:41:34 +10:00
rustc_lint_defs
rustc_llvm Rollup merge of #100460 - cuviper:drop-llvm-12, r=nagisa 2022-08-16 06:05:57 +02:00
rustc_log
rustc_macros Change fluent_messages macro to expect _ slugs instead of - slugs 2022-08-12 22:26:08 +02:00
rustc_metadata Adjust cfgs 2022-08-12 16:28:15 -04:00
rustc_middle Rollup merge of #99966 - RalfJung:try-dont-panic, r=lcnr 2022-08-18 05:10:42 +02:00
rustc_mir_build Adjust cfgs 2022-08-12 16:28:15 -04:00
rustc_mir_dataflow
rustc_mir_transform Adjust cfgs 2022-08-12 16:28:15 -04:00
rustc_monomorphize Refuse to codegen an upstream static. 2022-08-10 18:30:12 +02:00
rustc_parse Rollup merge of #100670 - Xiretza:parser-stmt-force-collect-docs, r=davidtwco 2022-08-18 05:10:49 +02:00
rustc_parse_format add a comment about what we can parse now 2022-08-04 20:43:35 +09:00
rustc_passes Rollup merge of #100031 - GoldsteinE:try-removing-the-field, r=michaelwoerister 2022-08-15 20:11:32 +02:00
rustc_plugin_impl
rustc_privacy Adjust cfgs 2022-08-12 16:28:15 -04:00
rustc_query_impl Rollup merge of #100389 - compiler-errors:return-type-suggestion-cycle, r=cjgillot 2022-08-17 12:32:51 +02:00
rustc_query_system Auto merge of #100441 - nnethercote:shrink-ast-Attribute, r=petrochenkov 2022-08-16 07:54:22 +00:00
rustc_resolve Rollup merge of #100643 - TaKO8Ki:point-at-type-parameter-shadowing-another-type, r=estebank 2022-08-18 05:10:46 +02:00
rustc_save_analysis
rustc_serialize
rustc_session Revert "Revert "Remove num_cpus dependency from bootstrap, build-manifest and rustc_session"" 2022-08-15 16:24:07 +02:00
rustc_smir
rustc_span Rollup merge of #100031 - GoldsteinE:try-removing-the-field, r=michaelwoerister 2022-08-15 20:11:32 +02:00
rustc_symbol_mangling
rustc_target Rollup merge of #100621 - taiki-e:armv4t-atomics-32, r=cuviper 2022-08-17 12:32:55 +02:00
rustc_trait_selection is_knowable use Result instead of Option 2022-08-17 10:17:54 +02:00
rustc_traits Rollup merge of #100095 - jackh726:early-binder, r=lcnr 2022-08-04 22:25:04 +02:00
rustc_transmute
rustc_ty_utils
rustc_type_ir
rustc_typeck Rollup merge of #100674 - PragmaTwice:mig-typeck-unused-crate-diag, r=davidtwco 2022-08-18 05:10:50 +02:00