diff options
| author | bors <bors@rust-lang.org> | 2024-03-07 15:02:36 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-03-07 15:02:36 +0000 |
| commit | 1c580bcb703d2ba288c380d2e283451a34d4eb1c (patch) | |
| tree | 3a3b6d9775fdafc5548004739b923c2b66f205a9 /compiler/rustc_hir_analysis/src/coherence/mod.rs | |
| parent | 52f8aec14c616387c5f793687f2d9026de6c78ca (diff) | |
| parent | ce9a6adba90a80b1642d55931006a52bde4e0c3f (diff) | |
| download | rust-1c580bcb703d2ba288c380d2e283451a34d4eb1c.tar.gz rust-1c580bcb703d2ba288c380d2e283451a34d4eb1c.zip | |
Auto merge of #122139 - GuillaumeGomez:rollup-37vtwsc, r=GuillaumeGomez
Rollup of 10 pull requests Successful merges: - #121863 (silence mismatched types errors for implied projections) - #122043 (Apply `EarlyBinder` only to `TraitRef` in `ImplTraitHeader`) - #122066 (Add proper cfgs for struct HirIdValidator used only with debug-assert) - #122104 (Rust is a proper name: rust → Rust) - #122110 (Make `x t miri` respect `MIRI_TEMP`) - #122114 (Make not finding core a fatal error) - #122115 (Cancel parsing ever made during recovery) - #122123 (Don't require specifying unrelated assoc types when trait alias is in `dyn` type) - #122126 (Fix `tidy --bless` on ̶X̶e̶n̶i̶x̶ Windows) - #122129 (Set `RustcDocs` to only run on host) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_hir_analysis/src/coherence/mod.rs')
| -rw-r--r-- | compiler/rustc_hir_analysis/src/coherence/mod.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/rustc_hir_analysis/src/coherence/mod.rs b/compiler/rustc_hir_analysis/src/coherence/mod.rs index d6281fa08f7..fc7a73e12be 100644 --- a/compiler/rustc_hir_analysis/src/coherence/mod.rs +++ b/compiler/rustc_hir_analysis/src/coherence/mod.rs @@ -134,11 +134,12 @@ fn coherent_trait(tcx: TyCtxt<'_>, def_id: DefId) -> Result<(), ErrorGuaranteed> let mut res = tcx.ensure().specialization_graph_of(def_id); for &impl_def_id in impls { - let trait_header = tcx.impl_trait_header(impl_def_id).unwrap().instantiate_identity(); - let trait_def = tcx.trait_def(trait_header.trait_ref.def_id); + let trait_header = tcx.impl_trait_header(impl_def_id).unwrap(); + let trait_ref = trait_header.trait_ref.instantiate_identity(); + let trait_def = tcx.trait_def(trait_ref.def_id); - res = res.and(check_impl(tcx, impl_def_id, trait_header.trait_ref, trait_def)); - res = res.and(check_object_overlap(tcx, impl_def_id, trait_header.trait_ref)); + res = res.and(check_impl(tcx, impl_def_id, trait_ref, trait_def)); + res = res.and(check_object_overlap(tcx, impl_def_id, trait_ref)); res = res.and(unsafety::check_item(tcx, impl_def_id, trait_header, trait_def)); res = res.and(tcx.ensure().orphan_check_impl(impl_def_id)); |
