Skip to content

Commit db3b40c

Browse files
committed
Cleanup: rewrite conditional as match
As suggested by @Centril. Signed-off-by: Philipp Gesang <[email protected]>
1 parent 02e66ba commit db3b40c

File tree

1 file changed

+31
-35
lines changed

1 file changed

+31
-35
lines changed

src/librustc/traits/error_reporting/on_unimplemented.rs

+31-35
Original file line numberDiff line numberDiff line change
@@ -59,49 +59,45 @@ impl<'a, 'tcx> InferCtxt<'a, 'tcx> {
5959
fn describe_enclosure(&self, hir_id: hir::HirId) -> Option<&'static str> {
6060
let hir = &self.tcx.hir();
6161
let node = hir.find(hir_id)?;
62-
if let hir::Node::Item(hir::Item { kind: hir::ItemKind::Fn(sig, _, body_id), .. }) = &node {
63-
self.describe_generator(*body_id).or_else(|| {
64-
Some(if let hir::FnHeader { asyncness: hir::IsAsync::Async, .. } = sig.header {
65-
"an async function"
66-
} else {
67-
"a function"
62+
match &node {
63+
hir::Node::Item(hir::Item { kind: hir::ItemKind::Fn(sig, _, body_id), .. }) => {
64+
self.describe_generator(*body_id).or_else(|| {
65+
Some(if let hir::FnHeader { asyncness: hir::IsAsync::Async, .. } = sig.header {
66+
"an async function"
67+
} else {
68+
"a function"
69+
})
6870
})
69-
})
70-
} else if let hir::Node::TraitItem(hir::TraitItem {
71-
kind: hir::TraitItemKind::Method(_, hir::TraitMethod::Provided(body_id)),
72-
..
73-
}) = &node
74-
{
75-
self.describe_generator(*body_id).or_else(|| Some("a trait method"))
76-
} else if let hir::Node::ImplItem(hir::ImplItem {
77-
kind: hir::ImplItemKind::Method(sig, body_id),
78-
..
79-
}) = &node
80-
{
81-
self.describe_generator(*body_id).or_else(|| {
71+
}
72+
hir::Node::TraitItem(hir::TraitItem {
73+
kind: hir::TraitItemKind::Method(_, hir::TraitMethod::Provided(body_id)),
74+
..
75+
}) => self.describe_generator(*body_id).or_else(|| Some("a trait method")),
76+
hir::Node::ImplItem(hir::ImplItem {
77+
kind: hir::ImplItemKind::Method(sig, body_id),
78+
..
79+
}) => self.describe_generator(*body_id).or_else(|| {
8280
Some(if let hir::FnHeader { asyncness: hir::IsAsync::Async, .. } = sig.header {
8381
"an async method"
8482
} else {
8583
"a method"
8684
})
87-
})
88-
} else if let hir::Node::Expr(hir::Expr {
89-
kind: hir::ExprKind::Closure(_is_move, _, body_id, _, gen_movability),
90-
..
91-
}) = &node
92-
{
93-
self.describe_generator(*body_id).or_else(|| {
85+
}),
86+
hir::Node::Expr(hir::Expr {
87+
kind: hir::ExprKind::Closure(_is_move, _, body_id, _, gen_movability),
88+
..
89+
}) => self.describe_generator(*body_id).or_else(|| {
9490
Some(if gen_movability.is_some() { "an async closure" } else { "a closure" })
95-
})
96-
} else if let hir::Node::Expr(hir::Expr { .. }) = &node {
97-
let parent_hid = hir.get_parent_node(hir_id);
98-
if parent_hid != hir_id {
99-
return self.describe_enclosure(parent_hid);
100-
} else {
101-
None
91+
}),
92+
hir::Node::Expr(hir::Expr { .. }) => {
93+
let parent_hid = hir.get_parent_node(hir_id);
94+
if parent_hid != hir_id {
95+
return self.describe_enclosure(parent_hid);
96+
} else {
97+
None
98+
}
10299
}
103-
} else {
104-
None
100+
_ => None,
105101
}
106102
}
107103

0 commit comments

Comments
 (0)