Remove opaque type obligation and just register opaque types as they are encountered.
This also registers obligations for the hidden type immediately.
This commit is contained in:
@@ -632,11 +632,6 @@ pub enum PredicateKind<'tcx> {
|
||||
///
|
||||
/// Only used for Chalk.
|
||||
TypeWellFormedFromEnv(Ty<'tcx>),
|
||||
|
||||
/// Represents a hidden type assignment for an opaque type.
|
||||
/// Such obligations get processed by checking whether the item currently being
|
||||
/// type-checked may acually define it.
|
||||
OpaqueType(Ty<'tcx>, Ty<'tcx>),
|
||||
}
|
||||
|
||||
/// The crate outlives map is computed during typeck and contains the
|
||||
@@ -1004,7 +999,6 @@ impl<'tcx> Predicate<'tcx> {
|
||||
| PredicateKind::TypeOutlives(..)
|
||||
| PredicateKind::ConstEvaluatable(..)
|
||||
| PredicateKind::ConstEquate(..)
|
||||
| PredicateKind::OpaqueType(..)
|
||||
| PredicateKind::TypeWellFormedFromEnv(..) => None,
|
||||
}
|
||||
}
|
||||
@@ -1023,7 +1017,6 @@ impl<'tcx> Predicate<'tcx> {
|
||||
| PredicateKind::ClosureKind(..)
|
||||
| PredicateKind::ConstEvaluatable(..)
|
||||
| PredicateKind::ConstEquate(..)
|
||||
| PredicateKind::OpaqueType(..)
|
||||
| PredicateKind::TypeWellFormedFromEnv(..) => None,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user