Skip to content

Commit 45021ca

Browse files
committed
Apply suggestion of @flodiebold: Get rid of multiple unwraps
1 parent da09f96 commit 45021ca

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

crates/ra_hir_ty/src/infer/expr.rs

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -238,25 +238,23 @@ impl<'a> InferenceContext<'a> {
238238
Ty::unit()
239239
};
240240

241-
let mut has_brkctx = false;
241+
let last_ty = if let Some(ctxt) = self.breakables.last() {
242+
ctxt.break_ty.clone()
243+
} else {
244+
Ty::Unknown
245+
};
242246

243-
if self.breakables.last().is_some() {
244-
has_brkctx = true;
247+
let merged_type = self.coerce_merge_branch(&last_ty, &val_ty);
248+
249+
if let Some(ctxt) = self.breakables.last_mut() {
250+
ctxt.break_ty = merged_type;
251+
ctxt.may_break = true;
245252
} else {
246253
self.push_diagnostic(InferenceDiagnostic::BreakOutsideOfLoop {
247254
expr: tgt_expr,
248255
});
249256
}
250257

251-
if has_brkctx {
252-
let last_ty = self.breakables.last().expect("This is a bug").break_ty.clone();
253-
let merged_type = self.coerce_merge_branch(&last_ty, &val_ty);
254-
255-
let ctxt = self.breakables.last_mut().expect("This is a bug");
256-
ctxt.may_break = true;
257-
ctxt.break_ty = merged_type;
258-
}
259-
260258
Ty::simple(TypeCtor::Never)
261259
}
262260
Expr::Return { expr } => {

0 commit comments

Comments
 (0)