diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2024-07-10 17:54:29 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-10 17:54:29 +0200 |
| commit | 22df186d6fee10ffba5334bccada2557bd2e7416 (patch) | |
| tree | ee84bf389304eb11ebc9461e4a632f4721bb2fd1 /compiler/rustc_trait_selection | |
| parent | 31639193ec7f4ec94c560610e0c7974e27715935 (diff) | |
| parent | e00fd781c91bc4b2703f25a75b0b28c775bd51b9 (diff) | |
| download | rust-22df186d6fee10ffba5334bccada2557bd2e7416.tar.gz rust-22df186d6fee10ffba5334bccada2557bd2e7416.zip | |
Rollup merge of #127570 - lcnr:normalize-cool, r=compiler-errors
small normalization improvement r? `@compiler-errors`
Diffstat (limited to 'compiler/rustc_trait_selection')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/normalize.rs | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/normalize.rs b/compiler/rustc_trait_selection/src/traits/normalize.rs index dda3aaaf71e..3a7481acbaf 100644 --- a/compiler/rustc_trait_selection/src/traits/normalize.rs +++ b/compiler/rustc_trait_selection/src/traits/normalize.rs @@ -109,16 +109,13 @@ pub(super) fn needs_normalization<'tcx, T: TypeVisitable<TyCtxt<'tcx>>>( value: &T, reveal: Reveal, ) -> bool { - // This mirrors `ty::TypeFlags::HAS_ALIASES` except that we take `Reveal` into account. - - let mut flags = ty::TypeFlags::HAS_TY_PROJECTION - | ty::TypeFlags::HAS_TY_WEAK - | ty::TypeFlags::HAS_TY_INHERENT - | ty::TypeFlags::HAS_CT_PROJECTION; + let mut flags = ty::TypeFlags::HAS_ALIAS; + // Opaques are treated as rigid with `Reveal::UserFacing`, + // so we can ignore those. match reveal { - Reveal::UserFacing => {} - Reveal::All => flags |= ty::TypeFlags::HAS_TY_OPAQUE, + Reveal::UserFacing => flags.remove(ty::TypeFlags::HAS_TY_OPAQUE), + Reveal::All => {} } value.has_type_flags(flags) |
