diff options
| author | bors <bors@rust-lang.org> | 2022-01-15 10:57:03 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-01-15 10:57:03 +0000 |
| commit | b13a5bf3c4d66ce375f5978c2c2233f9714b721e (patch) | |
| tree | ff0a003ba0175b321403bff0885636893e33b818 /compiler/rustc_codegen_ssa/src/debuginfo | |
| parent | 38c22af0153cf8f920c01ef04493e8878401fd18 (diff) | |
| parent | 539175c026c70e32150ca8c5ed2e0bacd3bb12e6 (diff) | |
| download | rust-b13a5bf3c4d66ce375f5978c2c2233f9714b721e.tar.gz rust-b13a5bf3c4d66ce375f5978c2c2233f9714b721e.zip | |
Auto merge of #92927 - matthiaskrgr:rollup-pgzwfcm, r=matthiaskrgr
Rollup of 8 pull requests Successful merges: - #92747 (Simplification of BigNum::bit_length) - #92767 (Use the new language identifier for Rust in the PDB debug format) - #92775 (Inline std::os::unix::ffi::OsStringExt methods) - #92863 (Remove `&mut` from `io::read_to_string` signature) - #92865 (Ignore static lifetimes for GATs outlives lint) - #92873 (Generate more precise generator names) - #92879 (Add Sync bound to allocator parameter in vec::IntoIter) - #92892 (Do not fail evaluation in const blocks) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/debuginfo')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs b/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs index 9ecab82dd2e..61322a6e556 100644 --- a/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs +++ b/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs @@ -519,12 +519,18 @@ fn push_unqualified_item_name( output.push_str(tcx.crate_name(def_id.krate).as_str()); } DefPathData::ClosureExpr if tcx.generator_kind(def_id).is_some() => { + let key = match tcx.generator_kind(def_id).unwrap() { + hir::GeneratorKind::Async(hir::AsyncGeneratorKind::Block) => "async_block", + hir::GeneratorKind::Async(hir::AsyncGeneratorKind::Closure) => "async_closure", + hir::GeneratorKind::Async(hir::AsyncGeneratorKind::Fn) => "async_fn", + hir::GeneratorKind::Gen => "generator", + }; // Generators look like closures, but we want to treat them differently // in the debug info. if cpp_like_debuginfo(tcx) { - write!(output, "generator${}", disambiguated_data.disambiguator).unwrap(); + write!(output, "{}${}", key, disambiguated_data.disambiguator).unwrap(); } else { - write!(output, "{{generator#{}}}", disambiguated_data.disambiguator).unwrap(); + write!(output, "{{{}#{}}}", key, disambiguated_data.disambiguator).unwrap(); } } _ => match disambiguated_data.data.name() { |
