@@ -349,7 +349,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
349
349
ExprKind :: Index ( base, idx, brackets_span) => {
350
350
self . check_expr_index ( base, idx, expr, brackets_span)
351
351
}
352
- ExprKind :: Yield ( value, ref src ) => self . check_expr_yield ( value, expr, src ) ,
352
+ ExprKind :: Yield ( value, _ ) => self . check_expr_yield ( value, expr) ,
353
353
hir:: ExprKind :: Err ( guar) => Ty :: new_error ( tcx, guar) ,
354
354
}
355
355
}
@@ -3155,22 +3155,13 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
3155
3155
& self ,
3156
3156
value : & ' tcx hir:: Expr < ' tcx > ,
3157
3157
expr : & ' tcx hir:: Expr < ' tcx > ,
3158
- src : & ' tcx hir:: YieldSource ,
3159
3158
) -> Ty < ' tcx > {
3160
3159
match self . resume_yield_tys {
3161
3160
Some ( ( resume_ty, yield_ty) ) => {
3162
3161
self . check_expr_coercible_to_type ( value, yield_ty, None ) ;
3163
3162
3164
3163
resume_ty
3165
3164
}
3166
- // Given that this `yield` expression was generated as a result of lowering a `.await`,
3167
- // we know that the yield type must be `()`; however, the context won't contain this
3168
- // information. Hence, we check the source of the yield expression here and check its
3169
- // value's type against `()` (this check should always hold).
3170
- None if src. is_await ( ) => {
3171
- self . check_expr_coercible_to_type ( value, Ty :: new_unit ( self . tcx ) , None ) ;
3172
- Ty :: new_unit ( self . tcx )
3173
- }
3174
3165
_ => {
3175
3166
self . tcx . sess . emit_err ( YieldExprOutsideOfCoroutine { span : expr. span } ) ;
3176
3167
// Avoid expressions without types during writeback (#78653).
0 commit comments