diff options
| author | Dylan DPC <99973273+Dylan-DPC@users.noreply.github.com> | 2023-05-09 12:33:46 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-09 12:33:46 +0530 |
| commit | f748bb1402fb2e8befb9ab1188b2229ce617ffcc (patch) | |
| tree | b579351fa4d79e4f390abeba8f6109c996b68bef /compiler/rustc_trait_selection/src/traits/coherence.rs | |
| parent | 8c51701b8a5ac3a2fbfbad9f6d386ec443344293 (diff) | |
| parent | f46eabb9e56fab132ec8171d0e0239f42c986e52 (diff) | |
| download | rust-f748bb1402fb2e8befb9ab1188b2229ce617ffcc.tar.gz rust-f748bb1402fb2e8befb9ab1188b2229ce617ffcc.zip | |
Rollup merge of #111252 - matthewjasper:min-spec-improvements, r=compiler-errors
Min specialization improvements - Don't allow specialization impls with no items, such implementations are probably not correct and only occur as mistakes in the compiler and standard library - Fix a missing normalization call - Adds spans for lifetime errors from overly general specializations Closes #79457 Closes #109815
Diffstat (limited to 'compiler/rustc_trait_selection/src/traits/coherence.rs')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/coherence.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/coherence.rs b/compiler/rustc_trait_selection/src/traits/coherence.rs index 402b09419c8..969e5fa64b0 100644 --- a/compiler/rustc_trait_selection/src/traits/coherence.rs +++ b/compiler/rustc_trait_selection/src/traits/coherence.rs @@ -322,7 +322,9 @@ fn negative_impl(tcx: TyCtxt<'_>, impl1_def_id: DefId, impl2_def_id: DefId) -> b let selcx = &mut SelectionContext::new(&infcx); let impl2_substs = infcx.fresh_substs_for_item(DUMMY_SP, impl2_def_id); let (subject2, obligations) = - impl_subject_and_oblig(selcx, impl_env, impl2_def_id, impl2_substs); + impl_subject_and_oblig(selcx, impl_env, impl2_def_id, impl2_substs, |_, _| { + ObligationCause::dummy() + }); !equate(&infcx, impl_env, subject1, subject2, obligations, impl1_def_id) } |
