File tree Expand file tree Collapse file tree 1 file changed +10
-12
lines changed
crates/ra_hir_ty/src/infer Expand file tree Collapse file tree 1 file changed +10
-12
lines changed Original file line number Diff line number Diff 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 } => {
You can’t perform that action at this time.
0 commit comments