diff options
| author | Michael Goulet <michael@errs.io> | 2025-07-30 20:57:00 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2025-07-30 20:57:00 +0000 |
| commit | 170ccbf434112f25f596898b1117942b4bafbd22 (patch) | |
| tree | 8b7846ff930b1120f2e65b4691599dd49cfac04d /compiler/rustc_hir_analysis | |
| parent | e5e79f8bd428d0b8d26e8240d718b134ef297459 (diff) | |
| download | rust-170ccbf434112f25f596898b1117942b4bafbd22.tar.gz rust-170ccbf434112f25f596898b1117942b4bafbd22.zip | |
expand WF obligations when checking method calls
Diffstat (limited to 'compiler/rustc_hir_analysis')
| -rw-r--r-- | compiler/rustc_hir_analysis/src/check/compare_impl_item.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/compiler/rustc_hir_analysis/src/check/compare_impl_item.rs b/compiler/rustc_hir_analysis/src/check/compare_impl_item.rs index e24426f9fed..daf5f6e7bb5 100644 --- a/compiler/rustc_hir_analysis/src/check/compare_impl_item.rs +++ b/compiler/rustc_hir_analysis/src/check/compare_impl_item.rs @@ -356,14 +356,14 @@ fn compare_method_predicate_entailment<'tcx>( } if !(impl_sig, trait_sig).references_error() { - ocx.register_obligation(traits::Obligation::new( - infcx.tcx, - cause, - param_env, - ty::ClauseKind::WellFormed( - Ty::new_fn_ptr(tcx, ty::Binder::dummy(unnormalized_impl_sig)).into(), - ), - )); + for ty in unnormalized_impl_sig.inputs_and_output { + ocx.register_obligation(traits::Obligation::new( + infcx.tcx, + cause.clone(), + param_env, + ty::ClauseKind::WellFormed(ty.into()), + )); + } } // Check that all obligations are satisfied by the implementation's |
