about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAaron Hill <aa1ronham@gmail.com>2021-12-18 11:25:05 -0500
committerAaron Hill <aa1ronham@gmail.com>2021-12-18 11:26:15 -0500
commitd31f7f1097539c41fea01a7f05400d05d31786c7 (patch)
tree770b83d3edd367841e8006a0b1d86a83bcbd4707
parent7abab1efb21617ba6845fa86328dffa16cfcf1dc (diff)
downloadrust-d31f7f1097539c41fea01a7f05400d05d31786c7.tar.gz
rust-d31f7f1097539c41fea01a7f05400d05d31786c7.zip
Ignore other `PredicateKind`s in rustdoc auto trait finder
Fixes #92073

There's not really anything we can do with them, and they're
causing ICEs. I'm not using a wildcard match, as we should check
that any new `PredicateKind`s are handled properly by rustdoc.
-rw-r--r--compiler/rustc_trait_selection/src/traits/auto_trait.rs12
1 files changed, 11 insertions, 1 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/auto_trait.rs b/compiler/rustc_trait_selection/src/traits/auto_trait.rs
index 53ff911ea0c..05d2a373dc6 100644
--- a/compiler/rustc_trait_selection/src/traits/auto_trait.rs
+++ b/compiler/rustc_trait_selection/src/traits/auto_trait.rs
@@ -839,7 +839,17 @@ impl<'tcx> AutoTraitFinder<'tcx> {
                         _ => return false,
                     }
                 }
-                _ => panic!("Unexpected predicate {:?} {:?}", ty, predicate),
+                // There's not really much we can do with these predicates -
+                // we start out with a `ParamEnv` with no inference variables,
+                // and these don't correspond to adding any new bounds to
+                // the `ParamEnv`.
+                ty::PredicateKind::WellFormed(..)
+                | ty::PredicateKind::ObjectSafe(..)
+                | ty::PredicateKind::ClosureKind(..)
+                | ty::PredicateKind::Subtype(..)
+                | ty::PredicateKind::ConstEvaluatable(..)
+                | ty::PredicateKind::Coerce(..)
+                | ty::PredicateKind::TypeWellFormedFromEnv(..) => {}
             };
         }
         true