about summary refs log tree commit diff
path: root/compiler/rustc_trait_selection
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-07-10 17:54:29 +0200
committerGitHub <noreply@github.com>2024-07-10 17:54:29 +0200
commit22df186d6fee10ffba5334bccada2557bd2e7416 (patch)
treeee84bf389304eb11ebc9461e4a632f4721bb2fd1 /compiler/rustc_trait_selection
parent31639193ec7f4ec94c560610e0c7974e27715935 (diff)
parente00fd781c91bc4b2703f25a75b0b28c775bd51b9 (diff)
downloadrust-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.rs13
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)