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> {
238
238
Ty :: unit ( )
239
239
} ;
240
240
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
+ } ;
242
246
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 ;
245
252
} else {
246
253
self . push_diagnostic ( InferenceDiagnostic :: BreakOutsideOfLoop {
247
254
expr : tgt_expr,
248
255
} ) ;
249
256
}
250
257
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
-
260
258
Ty :: simple ( TypeCtor :: Never )
261
259
}
262
260
Expr :: Return { expr } => {
You can’t perform that action at this time.
0 commit comments