diff options
| author | Tyler Mandry <tmandry@gmail.com> | 2019-04-02 13:51:13 -0700 |
|---|---|---|
| committer | Tyler Mandry <tmandry@gmail.com> | 2019-04-11 17:44:43 -0700 |
| commit | b58624727cfbc29ecd711222264c38adaebce0e1 (patch) | |
| tree | a582d8ae1b92481c0bbbc3926ea02dd636ac3263 | |
| parent | 3de0106789468b211bcc3a25c09c0cf07119186d (diff) | |
| download | rust-b58624727cfbc29ecd711222264c38adaebce0e1.tar.gz rust-b58624727cfbc29ecd711222264c38adaebce0e1.zip | |
describe_enum_variant: Reduce code duplication
| -rw-r--r-- | src/librustc_codegen_llvm/debuginfo/metadata.rs | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/librustc_codegen_llvm/debuginfo/metadata.rs b/src/librustc_codegen_llvm/debuginfo/metadata.rs index 94d520ec78c..ca056c6034a 100644 --- a/src/librustc_codegen_llvm/debuginfo/metadata.rs +++ b/src/librustc_codegen_llvm/debuginfo/metadata.rs @@ -1535,6 +1535,14 @@ fn describe_enum_variant( unique_type_id, Some(containing_scope)); + let arg_name = |i: usize| { + if variant.ctor_kind == CtorKind::Fn { + format!("__{}", i) + } else { + variant.fields[i].ident.to_string() + } + }; + // Build an array of (field name, field type) pairs to be captured in the factory closure. let (offsets, args) = if use_enum_fallback(cx) { // If this is not a univariant enum, there is also the discriminant field. @@ -1552,12 +1560,7 @@ fn describe_enum_variant( layout.fields.offset(i) })).collect(), discr_arg.into_iter().chain((0..layout.fields.count()).map(|i| { - let name = if variant.ctor_kind == CtorKind::Fn { - format!("__{}", i) - } else { - variant.fields[i].ident.to_string() - }; - (name, layout.field(cx, i).ty) + (arg_name(i), layout.field(cx, i).ty) })).collect() ) } else { @@ -1566,12 +1569,7 @@ fn describe_enum_variant( layout.fields.offset(i) }).collect(), (0..layout.fields.count()).map(|i| { - let name = if variant.ctor_kind == CtorKind::Fn { - format!("__{}", i) - } else { - variant.fields[i].ident.to_string() - }; - (name, layout.field(cx, i).ty) + (arg_name(i), layout.field(cx, i).ty) }).collect() ) }; |
