about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWesley Wiser <wesleywiser@microsoft.com>2021-07-02 20:24:05 -0400
committerWesley Wiser <wesleywiser@microsoft.com>2021-07-02 20:38:37 -0400
commit9c3148235e5c6b880c9fc97381a575bcc0f2b51f (patch)
treeac3eb255ff7088e5bef075ac4562f93f18f2d27d
parentf6d2843d6879b5741ab716bd8ca826c2ac5414cb (diff)
downloadrust-9c3148235e5c6b880c9fc97381a575bcc0f2b51f.tar.gz
rust-9c3148235e5c6b880c9fc97381a575bcc0f2b51f.zip
Refactor `msvc_enum_fallbck()` a bit
-rw-r--r--compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs31
1 files changed, 12 insertions, 19 deletions
diff --git a/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs b/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs
index e3348c6bf08..b3c14d9072c 100644
--- a/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs
+++ b/compiler/rustc_codegen_ssa/src/debuginfo/type_names.rs
@@ -367,6 +367,10 @@ pub fn push_debuginfo_type_name<'tcx>(
     ) {
         let layout = tcx.layout_of(tcx.param_env(def.did).and(ty)).expect("layout error");
 
+        output.push_str("enum$<");
+        push_item_name(tcx, def.did, true, output);
+        push_generic_params_internal(tcx, substs, output, visited);
+
         if let Variants::Multiple {
             tag_encoding: TagEncoding::Niche { dataful_variant, .. },
             tag,
@@ -386,30 +390,19 @@ pub fn push_debuginfo_type_name<'tcx>(
             let max = dataful_discriminant_range.end();
             let max = tag.value.size(&tcx).truncate(*max);
 
-            output.push_str("enum$<");
-            push_item_name(tcx, def.did, true, output);
-            push_generic_params_internal(tcx, substs, output, visited);
-
             let dataful_variant_name = def.variants[*dataful_variant].ident.as_str();
 
-            output.push_str(&format!(", {}, {}, {}>", min, max, dataful_variant_name));
-        } else {
-            output.push_str("enum$<");
-            push_item_name(tcx, def.did, true, output);
-            push_generic_params_internal(tcx, substs, output, visited);
-
-            if let Variants::Single { index: variant_idx } = &layout.variants {
-                // Uninhabited enums can't be constructed and should never need to be visualized so
-                // skip this step for them.
-                if def.variants.len() != 0 {
-                    let variant = def.variants[*variant_idx].ident.as_str();
+            output.push_str(&format!(", {}, {}, {}", min, max, dataful_variant_name));
+        } else if let Variants::Single { index: variant_idx } = &layout.variants {
+            // Uninhabited enums can't be constructed and should never need to be visualized so
+            // skip this step for them.
+            if def.variants.len() != 0 {
+                let variant = def.variants[*variant_idx].ident.as_str();
 
-                    output.push_str(&format!(", {}", variant));
-                }
+                output.push_str(&format!(", {}", variant));
             }
-
-            push_close_angle_bracket(tcx, output);
         }
+        push_close_angle_bracket(tcx, output);
     }
 }