@@ -461,6 +461,7 @@ pub fn type_di_node<'ll, 'tcx>(cx: &CodegenCx<'ll, 'tcx>, t: Ty<'tcx>) -> &'ll D
461461 }
462462 ty:: FnDef ( ..) | ty:: FnPtr ( _) => build_subroutine_type_di_node ( cx, unique_type_id) ,
463463 ty:: Closure ( ..) => build_closure_env_di_node ( cx, unique_type_id) ,
464+ ty:: CoroutineClosure ( ..) => build_closure_env_di_node ( cx, unique_type_id) ,
464465 ty:: Coroutine ( ..) => enums:: build_coroutine_di_node ( cx, unique_type_id) ,
465466 ty:: Adt ( def, ..) => match def. adt_kind ( ) {
466467 AdtKind :: Struct => build_struct_type_di_node ( cx, unique_type_id) ,
@@ -1068,6 +1069,7 @@ fn build_upvar_field_di_nodes<'ll, 'tcx>(
10681069 let ( & def_id, up_var_tys) = match closure_or_coroutine_ty. kind ( ) {
10691070 ty:: Coroutine ( def_id, args) => ( def_id, args. as_coroutine ( ) . prefix_tys ( ) ) ,
10701071 ty:: Closure ( def_id, args) => ( def_id, args. as_closure ( ) . upvar_tys ( ) ) ,
1072+ ty:: CoroutineClosure ( def_id, args) => ( def_id, args. as_coroutine_closure ( ) . upvar_tys ( ) ) ,
10711073 _ => {
10721074 bug ! (
10731075 "build_upvar_field_di_nodes() called with non-closure-or-coroutine-type: {:?}" ,
@@ -1153,7 +1155,8 @@ fn build_closure_env_di_node<'ll, 'tcx>(
11531155 unique_type_id : UniqueTypeId < ' tcx > ,
11541156) -> DINodeCreationResult < ' ll > {
11551157 let closure_env_type = unique_type_id. expect_ty ( ) ;
1156- let & ty:: Closure ( def_id, _args) = closure_env_type. kind ( ) else {
1158+ let & ( ty:: Closure ( def_id, _) | ty:: CoroutineClosure ( def_id, _) ) = closure_env_type. kind ( )
1159+ else {
11571160 bug ! ( "build_closure_env_di_node() called with non-closure-type: {:?}" , closure_env_type)
11581161 } ;
11591162 let containing_scope = get_namespace_for_item ( cx, def_id) ;
0 commit comments