Skip to content

Commit

Permalink
Simplify match.
Browse files Browse the repository at this point in the history
  • Loading branch information
cjgillot committed Dec 7, 2021
1 parent 8576ab4 commit 54ff721
Showing 1 changed file with 15 additions and 25 deletions.
40 changes: 15 additions & 25 deletions compiler/rustc_infer/src/infer/opaque_types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -461,39 +461,29 @@ impl<'a, 'tcx> Instantiator<'a, 'tcx> {
if let Some(def_id) = def_id.as_local() {
let opaque_hir_id = tcx.hir().local_def_id_to_hir_id(def_id);
let parent_def_id = self.infcx.defining_use_anchor;
let (in_definition_scope, origin) = match tcx.hir().expect_item(def_id).kind
{
let item_kind = &tcx.hir().expect_item(def_id).kind;
let hir::ItemKind::OpaqueTy(hir::OpaqueTy { origin, .. }) = item_kind else {
span_bug!(
self.value_span,
"weird opaque type: {:#?}, {:#?}",
ty.kind(),
item_kind
)
};
let in_definition_scope = match *origin {
// Async `impl Trait`
hir::ItemKind::OpaqueTy(hir::OpaqueTy {
origin: hir::OpaqueTyOrigin::AsyncFn(parent),
..
}) => (parent == parent_def_id, hir::OpaqueTyOrigin::AsyncFn(parent)),
hir::OpaqueTyOrigin::AsyncFn(parent) => parent == parent_def_id,
// Anonymous `impl Trait`
hir::ItemKind::OpaqueTy(hir::OpaqueTy {
origin: hir::OpaqueTyOrigin::FnReturn(parent),
..
}) => (parent == parent_def_id, hir::OpaqueTyOrigin::FnReturn(parent)),
hir::OpaqueTyOrigin::FnReturn(parent) => parent == parent_def_id,
// Named `type Foo = impl Bar;`
hir::ItemKind::OpaqueTy(hir::OpaqueTy {
origin: hir::OpaqueTyOrigin::TyAlias,
..
}) => (
may_define_opaque_type(tcx, parent_def_id, opaque_hir_id),
hir::OpaqueTyOrigin::TyAlias,
),
ref itemkind => {
span_bug!(
self.value_span,
"weird opaque type: {:#?}, {:#?}",
ty.kind(),
itemkind
)
hir::OpaqueTyOrigin::TyAlias => {
may_define_opaque_type(tcx, parent_def_id, opaque_hir_id)
}
};
if in_definition_scope {
let opaque_type_key =
OpaqueTypeKey { def_id: def_id.to_def_id(), substs };
return self.fold_opaque_ty(ty, opaque_type_key, origin);
return self.fold_opaque_ty(ty, opaque_type_key, *origin);
}

debug!(
Expand Down

0 comments on commit 54ff721

Please sign in to comment.