Remove OpaqueTyOrigin::Misc, use TyAlias instead

This commit is contained in:
Santiago Pastorino 2021-07-14 18:23:36 -03:00
parent d98384595f
commit 000b945cea
No known key found for this signature in database
GPG key ID: 8131A24E0C79EFAF
5 changed files with 6 additions and 9 deletions

View file

@ -280,7 +280,7 @@ enum ImplTraitContext<'b, 'a> {
// FIXME(impl_trait): but `required_region_bounds` will ICE later // FIXME(impl_trait): but `required_region_bounds` will ICE later
// anyway. // anyway.
capturable_lifetimes: &'b mut FxHashSet<hir::LifetimeName>, capturable_lifetimes: &'b mut FxHashSet<hir::LifetimeName>,
/// Origin: Either OpaqueTyOrigin::TyAlias or OpaqueTyOrigin::Misc, /// Origin: OpaqueTyOrigin::TyAlias
origin: hir::OpaqueTyOrigin, origin: hir::OpaqueTyOrigin,
}, },
/// `impl Trait` is not accepted in this position. /// `impl Trait` is not accepted in this position.
@ -1152,7 +1152,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
true, true,
ImplTraitContext::TypeAliasesOpaqueTy { ImplTraitContext::TypeAliasesOpaqueTy {
capturable_lifetimes: &mut capturable_lifetimes, capturable_lifetimes: &mut capturable_lifetimes,
origin: hir::OpaqueTyOrigin::Misc, origin: hir::OpaqueTyOrigin::TyAlias,
}, },
) )
} }

View file

@ -2272,8 +2272,6 @@ pub enum OpaqueTyOrigin {
AsyncFn, AsyncFn,
/// type aliases: `type Foo = impl Trait;` /// type aliases: `type Foo = impl Trait;`
TyAlias, TyAlias,
/// Impl trait consts, statics, bounds.
Misc,
} }
/// The various kinds of types recognized by the compiler. /// The various kinds of types recognized by the compiler.

View file

@ -402,7 +402,7 @@ impl<'a, 'tcx> InferCtxtExt<'tcx> for InferCtxt<'a, 'tcx> {
} }
// These opaque type inherit all lifetime parameters from their // These opaque type inherit all lifetime parameters from their
// parent, so we have to check them all. // parent, so we have to check them all.
hir::OpaqueTyOrigin::TyAlias | hir::OpaqueTyOrigin::Misc => 0, hir::OpaqueTyOrigin::TyAlias => 0,
}; };
let span = tcx.def_span(def_id); let span = tcx.def_span(def_id);
@ -994,7 +994,7 @@ impl<'a, 'tcx> Instantiator<'a, 'tcx> {
may_define_opaque_type(tcx, self.parent_def_id, opaque_hir_id), may_define_opaque_type(tcx, self.parent_def_id, opaque_hir_id),
origin, origin,
), ),
_ => (def_scope_default(), hir::OpaqueTyOrigin::Misc), _ => (def_scope_default(), hir::OpaqueTyOrigin::TyAlias),
}; };
if in_definition_scope { if in_definition_scope {
let opaque_type_key = let opaque_type_key =

View file

@ -700,7 +700,7 @@ fn check_opaque_meets_bounds<'tcx>(
// Checked when type checking the function containing them. // Checked when type checking the function containing them.
hir::OpaqueTyOrigin::FnReturn | hir::OpaqueTyOrigin::AsyncFn => return, hir::OpaqueTyOrigin::FnReturn | hir::OpaqueTyOrigin::AsyncFn => return,
// Can have different predicates to their defining use // Can have different predicates to their defining use
hir::OpaqueTyOrigin::Misc | hir::OpaqueTyOrigin::TyAlias => {} hir::OpaqueTyOrigin::TyAlias => {}
} }
let hir_id = tcx.hir().local_def_id_to_hir_id(def_id); let hir_id = tcx.hir().local_def_id_to_hir_id(def_id);

View file

@ -521,8 +521,7 @@ impl<'cx, 'tcx> WritebackCx<'cx, 'tcx> {
let mut skip_add = false; let mut skip_add = false;
if let ty::Opaque(definition_ty_def_id, _substs) = *definition_ty.kind() { if let ty::Opaque(definition_ty_def_id, _substs) = *definition_ty.kind() {
if let hir::OpaqueTyOrigin::Misc | hir::OpaqueTyOrigin::TyAlias = opaque_defn.origin if let hir::OpaqueTyOrigin::TyAlias = opaque_defn.origin {
{
if opaque_type_key.def_id == definition_ty_def_id { if opaque_type_key.def_id == definition_ty_def_id {
debug!( debug!(
"skipping adding concrete definition for opaque type {:?} {:?}", "skipping adding concrete definition for opaque type {:?} {:?}",