rust/compiler
Matthias Krüger df3712ce21
Rollup merge of #121193 - compiler-errors:coherence-fulfillment, r=lcnr
Use fulfillment in next trait solver coherence

Use fulfillment in the new trait solver's `impl_intersection_has_impossible_obligation` routine. This means that inference that falls out of processing other obligations can influence whether we can determine if an obligation is impossible to satisfy. See the committed test.

This should be completely sound, since evaluation and fulfillment both respect intercrate mode equally.

We run the risk of breaking coherence later if we were to change the rules of fulfillment and/or inference during coherence, but this is a problem which affects evaluation, as nested obligations from a trait goal are processed together and can influence each other in the same way.

r? lcnr
cc #114862

Also changed obligationctxt -> fulfillmentctxt because it feels kind of redundant to use an ocx here. I don't really care enough and can change it back if it really matters much.
2024-02-17 18:47:42 +01:00
..
rustc Clean up rustc_*/Cargo.toml. 2023-10-30 08:46:02 +11:00
rustc_abi Fix rustc_abi build on stable 2024-01-16 21:15:31 +01:00
rustc_arena Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_ast Rollup merge of #121109 - nnethercote:TyKind-Err-guar-2, r=oli-obk 2024-02-16 00:27:32 +01:00
rustc_ast_lowering Move trait into attr so it's greppable 2024-02-16 15:07:37 +00:00
rustc_ast_passes Add an ErrorGuaranteed to ast::TyKind::Err. 2024-02-15 09:35:11 +11:00
rustc_ast_pretty Rollup merge of #121109 - nnethercote:TyKind-Err-guar-2, r=oli-obk 2024-02-16 00:27:32 +01:00
rustc_attr Use generic NonZero internally. 2024-02-15 08:09:42 +01:00
rustc_baked_icu_data Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_borrowck Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_builtin_macros Add ErrorGuaranteed to ast::LitKind::Err, token::LitKind::Err. 2024-02-15 14:46:08 +11:00
rustc_codegen_cranelift Give const_deallocate a default body 2024-02-12 17:52:05 +00:00
rustc_codegen_gcc Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_codegen_llvm Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_codegen_ssa Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_const_eval Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_data_structures Auto merge of #120486 - reitermarkus:use-generic-nonzero, r=dtolnay 2024-02-16 07:46:31 +00:00
rustc_driver Bump cfg(bootstrap)s 2023-11-15 19:41:28 -05:00
rustc_driver_impl Rollup merge of #120693 - nnethercote:invert-diagnostic-lints, r=davidtwco 2024-02-09 14:41:50 +01:00
rustc_error_codes Dejargnonize subst 2024-02-12 15:46:35 +09:00
rustc_error_messages errors: only eagerly translate subdiagnostics 2024-02-15 10:34:41 +00:00
rustc_errors Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_expand Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_feature Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_fluent_macro Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_fs_util Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_graphviz Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_hir Rollup merge of #120958 - ShoyuVanilla:remove-subst, r=oli-obk 2024-02-12 23:18:54 +01:00
rustc_hir_analysis Rollup merge of #121192 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-17 11:23:08 +01:00
rustc_hir_pretty Lower anonymous structs or unions to HIR 2024-02-12 12:47:23 +08:00
rustc_hir_typeck Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_incremental Make impl_trait_ref into a query also returning more information about the impl 2024-02-12 09:42:41 +00:00
rustc_index Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_index_macros Step all bootstrap cfgs forward 2024-02-08 07:44:34 -05:00
rustc_infer Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_interface Auto merge of #120486 - reitermarkus:use-generic-nonzero, r=dtolnay 2024-02-16 07:46:31 +00:00
rustc_lexer Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_lint Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_lint_defs Bump indexmap 2024-02-13 21:03:34 +00:00
rustc_llvm Pin cc version 2024-02-13 21:13:06 +00:00
rustc_log Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_macros Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_metadata Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_middle Rollup merge of #121059 - compiler-errors:extension, r=davidtwco,Nilstrieb 2024-02-17 11:23:04 +01:00
rustc_mir_build Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_mir_dataflow Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_mir_transform Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_monomorphize Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_next_trait_solver Move visitable bounds up into interner 2024-02-13 15:53:15 +00:00
rustc_parse Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_parse_format Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_passes Auto merge of #120486 - reitermarkus:use-generic-nonzero, r=dtolnay 2024-02-16 07:46:31 +00:00
rustc_pattern_analysis Auto merge of #120991 - matthiaskrgr:rollup-f8kw2st, r=matthiaskrgr 2024-02-13 00:31:53 +00:00
rustc_privacy Dejargnonize subst 2024-02-12 15:46:35 +09:00
rustc_query_impl Replace NonZero::<_>::new with NonZero::new. 2024-02-15 08:09:42 +01:00
rustc_query_system Use generic NonZero internally. 2024-02-15 08:09:42 +01:00
rustc_resolve Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_serialize Replace NonZero::<_>::new with NonZero::new. 2024-02-15 08:09:42 +01:00
rustc_session Rollup merge of #121085 - davidtwco:always-eager-diagnostics, r=nnethercote 2024-02-17 18:47:40 +01:00
rustc_smir Rollup merge of #120982 - momvart:smir-61-foreign_kind, r=oli-obk 2024-02-15 09:20:18 +01:00
rustc_span Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_symbol_mangling Rollup merge of #120958 - ShoyuVanilla:remove-subst, r=oli-obk 2024-02-12 23:18:54 +01:00
rustc_target Update aarch64 target feature docs to match LLVM 2024-02-15 14:36:29 +00:00
rustc_trait_selection Rollup merge of #121193 - compiler-errors:coherence-fulfillment, r=lcnr 2024-02-17 18:47:42 +01:00
rustc_traits Dejargnonize subst 2024-02-12 15:46:35 +09:00
rustc_transmute Invert diagnostic lints. 2024-02-06 13:12:33 +11:00
rustc_ty_utils Auto merge of #120500 - oli-obk:intrinsics2.0, r=WaffleLapkin 2024-02-16 09:53:01 +00:00
rustc_type_ir Move visitable bounds up into interner 2024-02-13 15:53:15 +00:00
stable_mir Rollup merge of #120982 - momvart:smir-61-foreign_kind, r=oli-obk 2024-02-15 09:20:18 +01:00