Skip to content

Commit 7bd93a0

Browse files
Build DebugInfo for coroutine-closure
1 parent 972452c commit 7bd93a0

File tree

3 files changed

+4
-7
lines changed

3 files changed

+4
-7
lines changed

compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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);

tests/ui/async-await/async-closures/async-fn-mut-for-async-fn.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
// edition:2021
33
// run-pass
44

5-
// FIXME(async_closures): When `fn_sig_for_fn_abi` is fixed, remove this.
6-
// ignore-pass (test emits codegen-time warnings)
7-
85
#![feature(async_closure)]
96

107
extern crate block_on;

tests/ui/async-await/async-closures/async-fn-once-for-async-fn.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
// edition:2021
33
// run-pass
44

5-
// FIXME(async_closures): When `fn_sig_for_fn_abi` is fixed, remove this.
6-
// ignore-pass (test emits codegen-time warnings)
7-
85
#![feature(async_closure)]
96

107
extern crate block_on;

0 commit comments

Comments
 (0)