about summary refs log tree commit diff
path: root/src/etc/natvis
diff options
context:
space:
mode:
authorWesley Wiser <wesleywiser@microsoft.com>2021-04-26 14:39:57 -0400
committerWesley Wiser <wesleywiser@microsoft.com>2021-06-02 10:23:09 -0400
commitf353cbf1a145603e1f69c2aaaef171dd60ca4c65 (patch)
treea1c3d4644264c06372c83a621fff2d50e152c070 /src/etc/natvis
parent1e13a9bb33debb931d603278b7f1a706b0d11660 (diff)
downloadrust-f353cbf1a145603e1f69c2aaaef171dd60ca4c65.tar.gz
rust-f353cbf1a145603e1f69c2aaaef171dd60ca4c65.zip
Generate better debuginfo for directly tagged enums
Diffstat (limited to 'src/etc/natvis')
-rw-r--r--src/etc/natvis/intrinsic.natvis38
-rw-r--r--src/etc/natvis/libcore.natvis17
2 files changed, 38 insertions, 17 deletions
diff --git a/src/etc/natvis/intrinsic.natvis b/src/etc/natvis/intrinsic.natvis
index 030892a432b..45e36f929b4 100644
--- a/src/etc/natvis/intrinsic.natvis
+++ b/src/etc/natvis/intrinsic.natvis
@@ -149,4 +149,42 @@
       <Synthetic Name="[...]"><DisplayString>...</DisplayString></Synthetic>
     </Expand>
   </Type>
+  <Type Name="_enum&lt;*&gt;">
+    <Intrinsic Name="tag" Expression="Variant0.variant$" />
+    <DisplayString Condition="tag() == 0">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 1" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 2" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 3" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 4" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 5" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 6" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 7" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 8" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 9" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 10" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 11" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 12" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 13" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 14" Optional="true">{tag(),en}</DisplayString>
+    <DisplayString Condition="tag() == 15" Optional="true">{tag(),en}</DisplayString>
+
+    <Expand>
+      <ExpandedItem Condition="tag() == 0">Variant0</ExpandedItem>
+      <ExpandedItem Condition="tag() == 1" Optional="true">Variant1</ExpandedItem>
+      <ExpandedItem Condition="tag() == 2" Optional="true">Variant2</ExpandedItem>
+      <ExpandedItem Condition="tag() == 3" Optional="true">Variant3</ExpandedItem>
+      <ExpandedItem Condition="tag() == 4" Optional="true">Variant4</ExpandedItem>
+      <ExpandedItem Condition="tag() == 5" Optional="true">Variant5</ExpandedItem>
+      <ExpandedItem Condition="tag() == 6" Optional="true">Variant6</ExpandedItem>
+      <ExpandedItem Condition="tag() == 7" Optional="true">Variant7</ExpandedItem>
+      <ExpandedItem Condition="tag() == 8" Optional="true">Variant8</ExpandedItem>
+      <ExpandedItem Condition="tag() == 9" Optional="true">Variant9</ExpandedItem>
+      <ExpandedItem Condition="tag() == 10" Optional="true">Variant10</ExpandedItem>
+      <ExpandedItem Condition="tag() == 11" Optional="true">Variant11</ExpandedItem>
+      <ExpandedItem Condition="tag() == 12" Optional="true">Variant12</ExpandedItem>
+      <ExpandedItem Condition="tag() == 13" Optional="true">Variant13</ExpandedItem>
+      <ExpandedItem Condition="tag() == 14" Optional="true">Variant14</ExpandedItem>
+      <ExpandedItem Condition="tag() == 15" Optional="true">Variant15</ExpandedItem>
+    </Expand>
+  </Type>
 </AutoVisualizer>
diff --git a/src/etc/natvis/libcore.natvis b/src/etc/natvis/libcore.natvis
index 9c3c26f5978..17667770520 100644
--- a/src/etc/natvis/libcore.natvis
+++ b/src/etc/natvis/libcore.natvis
@@ -14,14 +14,6 @@
     </Expand>
   </Type>
 
-  <Type Name="core::option::Option&lt;*&gt;">
-    <DisplayString Condition="RUST$ENUM$DISR == 0x0">None</DisplayString>
-    <DisplayString Condition="RUST$ENUM$DISR == 0x1">Some({__0})</DisplayString>
-    <Expand>
-      <Item Name="[value]" ExcludeView="simple" Condition="RUST$ENUM$DISR == 1">__0</Item>
-    </Expand>
-  </Type>
-
   <Type Name="core::option::Option&lt;*&gt;" Priority="MediumLow">
     <DisplayString Condition="*(void**)this == nullptr">None</DisplayString>
     <DisplayString>Some({($T1 *)this})</DisplayString>
@@ -30,15 +22,6 @@
     </Expand>
   </Type>
 
-  <Type Name="core::result::Result&lt;*&gt;">
-    <DisplayString Condition="RUST$ENUM$DISR == 0x0">Ok({__0})</DisplayString>
-    <DisplayString Condition="RUST$ENUM$DISR == 0x1">Err({(*($T2*) &amp;__0)})</DisplayString>
-    <Expand>
-      <Item Name="[value]" Condition="RUST$ENUM$DISR == 0x0">__0</Item>
-      <Item Name="[value]" Condition="RUST$ENUM$DISR == 0x1">(*($T2*) &amp;__0)</Item>
-    </Expand>
-  </Type>
-
   <Type Name="core::ptr::non_null::NonNull&lt;*&gt;">
     <DisplayString>{(void*) pointer}</DisplayString>
     <Expand>