rust/compiler
Trevor Gross 3b45f8f310
Rollup merge of #130764 - compiler-errors:inherent, r=estebank
Separate collection of crate-local inherent impls from error tracking

#119895 changed the return type of the `crate_inherent_impls` query from `CrateInherentImpls` to `Result<CrateInherentImpls, ErrorGuaranteed>` to avoid needing to use the non-parallel-friendly `track_errors()` to track if an error was reporting from within the query... This was mostly fine until #121113, which stopped halting compilation when we hit an `Err(ErrorGuaranteed)` in the `crate_inherent_impls` query.

Thus we proceed onwards to typeck, and since a return type of `Result<CrateInherentImpls, ErrorGuaranteed>` means that the query can *either* return one of "the list inherent impls" or "error has been reported", later on when we want to assemble method or associated item candidates for inherent impls, we were just treating any `Err(ErrorGuaranteed)` return value as if Rust had no inherent impls defined anywhere at all! This leads to basically every inherent method call failing with an error, lol, which was reported in #127798.

This PR changes the `crate_inherent_impls` query to return `(CrateInherentImpls, Result<(), ErrorGuaranteed>)`, i.e. returning the inherent impls collected *and* whether an error was reported in the query itself. It firewalls the latter part of that query into a new `crate_inherent_impls_validity_check` just for the `ensure()` call.

This fixes #127798.
2024-09-24 19:47:50 -04:00
..
rustc disable size asserts in the compiler when randomizing layouts 2024-08-31 23:56:45 +02:00
rustc_abi Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_arena Remove unnecessary lifetimes from Arena. 2024-09-13 15:33:19 +10:00
rustc_ast Rollup merge of #130551 - nnethercote:fix-break-last-token, r=petrochenkov 2024-09-23 07:54:44 -07:00
rustc_ast_ir Add warn(unreachable_pub) to several crates. 2024-08-16 08:46:13 +10:00
rustc_ast_lowering Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_ast_passes Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_ast_pretty Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_attr Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_baked_icu_data Don't add warn(unreachable_pub) to rustc_baked_icu. 2024-08-16 08:46:52 +10:00
rustc_borrowck be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
rustc_builtin_macros Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_codegen_cranelift be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
rustc_codegen_gcc Auto merge of #130389 - Luv-Ray:LLVMMDNodeInContext2, r=nikic 2024-09-24 12:07:48 +00:00
rustc_codegen_llvm Auto merge of #130389 - Luv-Ray:LLVMMDNodeInContext2, r=nikic 2024-09-24 12:07:48 +00:00
rustc_codegen_ssa be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
rustc_const_eval be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
rustc_data_structures Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_driver Use tidy to sort crate attributes for all compiler crates. 2024-06-12 15:49:10 +10:00
rustc_driver_impl Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_error_codes mark E0775 as no longer emitte by the compiler 2024-09-21 13:09:09 +02:00
rustc_error_messages Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_errors Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_expand Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_feature add unqualified_local_imports lint 2024-09-23 11:57:28 +02:00
rustc_fluent_macro Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_fs_util Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_graphviz Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_hir Rollup merge of #130714 - compiler-errors:try-structurally-resolve-const, r=BoxyUwU 2024-09-23 06:45:36 +02:00
rustc_hir_analysis Separate collection of crate-local inherent impls from error reporting 2024-09-24 10:12:05 -04:00
rustc_hir_pretty Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_hir_typeck Rollup merge of #130764 - compiler-errors:inherent, r=estebank 2024-09-24 19:47:50 -04:00
rustc_incremental Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_index Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_index_macros Remove usage of specialization from newtype_index! 2024-06-30 16:42:53 +00:00
rustc_infer Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_interface Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_lexer Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_lint Auto merge of #130768 - compiler-errors:rollup-8ncjy55, r=compiler-errors 2024-09-24 06:02:43 +00:00
rustc_lint_defs Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_llvm Auto merge of #130446 - durin42:llvm-20-fix-CommandLineArgs, r=workingjubilee 2024-09-22 05:26:41 +00:00
rustc_log Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_macros Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_metadata Separate collection of crate-local inherent impls from error reporting 2024-09-24 10:12:05 -04:00
rustc_middle Rollup merge of #130764 - compiler-errors:inherent, r=estebank 2024-09-24 19:47:50 -04:00
rustc_mir_build be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
rustc_mir_dataflow Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_mir_transform be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
rustc_monomorphize Rollup merge of #130764 - compiler-errors:inherent, r=estebank 2024-09-24 19:47:50 -04:00
rustc_next_trait_solver Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_parse Rollup merge of #130551 - nnethercote:fix-break-last-token, r=petrochenkov 2024-09-23 07:54:44 -07:00
rustc_parse_format Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_passes Check vtable projections for validity in miri 2024-09-23 19:38:26 -04:00
rustc_pattern_analysis Rollup merge of #130715 - compiler-errors:mir-build-const-eval, r=BoxyUwU 2024-09-23 06:45:36 +02:00
rustc_privacy Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_query_impl Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_query_system Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_resolve Separate collection of crate-local inherent impls from error reporting 2024-09-24 10:12:05 -04:00
rustc_sanitizers Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_serialize Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_session Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_smir be even more precise about "cast" vs "coercion" 2024-09-24 23:12:02 +02:00
rustc_span add unqualified_local_imports lint 2024-09-23 11:57:28 +02:00
rustc_symbol_mangling Rollup merge of #130344 - Jaic1:fix-116306, r=BoxyUwU 2024-09-23 06:45:33 +02:00
rustc_target Rollup merge of #130750 - heiher:loong-linux-ohos-tier3, r=jieyouxu 2024-09-23 23:49:12 -04:00
rustc_trait_selection Rollup merge of #130714 - compiler-errors:try-structurally-resolve-const, r=BoxyUwU 2024-09-23 06:45:36 +02:00
rustc_traits Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_transmute Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_ty_utils Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_type_ir Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
rustc_type_ir_macros Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
stable_mir unify dyn* coercions with other pointer coercions 2024-09-24 22:17:55 +02:00