Update natvis to match full type names for Arc, Rc, Weak, etc

Also update a test case to have the correct whitespace in a type name.
This commit is contained in:
Wesley Wiser 2023-07-17 15:51:46 -04:00
parent fed3c8cd28
commit 12bed9d8cc
2 changed files with 9 additions and 6 deletions

View File

@ -66,7 +66,10 @@
dyn pointees. dyn pointees.
Rc<[T]> and Arc<[T]> are handled separately altogether so we can actually show Rc<[T]> and Arc<[T]> are handled separately altogether so we can actually show
the slice values. the slice values. These visualizers have a second wildcard `foo&lt;slice2$&lt;*&gt;, *&gt;`
which accounts for the allocator parameter. This isn't needed for the other visualizers since
their inner `*` eats the type parameter but since the slice ones match part of the type params
it is necessary for them.
--> -->
<!-- alloc::rc::Rc<T> --> <!-- alloc::rc::Rc<T> -->
<Type Name="alloc::rc::Rc&lt;*&gt;"> <Type Name="alloc::rc::Rc&lt;*&gt;">
@ -84,7 +87,7 @@
</Type> </Type>
<!-- alloc::rc::Rc<[T]> --> <!-- alloc::rc::Rc<[T]> -->
<Type Name="alloc::rc::Rc&lt;slice2$&lt;*&gt; &gt;"> <Type Name="alloc::rc::Rc&lt;slice2$&lt;*&gt;,*&gt;">
<DisplayString>{{ len={ptr.pointer.length} }}</DisplayString> <DisplayString>{{ len={ptr.pointer.length} }}</DisplayString>
<Expand> <Expand>
<Item Name="[Length]" ExcludeView="simple">ptr.pointer.length</Item> <Item Name="[Length]" ExcludeView="simple">ptr.pointer.length</Item>
@ -114,7 +117,7 @@
</Type> </Type>
<!-- alloc::rc::Weak<[T]> --> <!-- alloc::rc::Weak<[T]> -->
<Type Name="alloc::rc::Weak&lt;slice2$&lt;*&gt; &gt;"> <Type Name="alloc::rc::Weak&lt;slice2$&lt;*&gt;,*&gt;">
<DisplayString>{{ len={ptr.pointer.length} }}</DisplayString> <DisplayString>{{ len={ptr.pointer.length} }}</DisplayString>
<Expand> <Expand>
<Item Name="[Length]" ExcludeView="simple">ptr.pointer.length</Item> <Item Name="[Length]" ExcludeView="simple">ptr.pointer.length</Item>
@ -143,7 +146,7 @@
</Type> </Type>
<!-- alloc::sync::Arc<[T]> --> <!-- alloc::sync::Arc<[T]> -->
<Type Name="alloc::sync::Arc&lt;slice2$&lt;*&gt; &gt;"> <Type Name="alloc::sync::Arc&lt;slice2$&lt;*&gt;,*&gt;">
<DisplayString>{{ len={ptr.pointer.length} }}</DisplayString> <DisplayString>{{ len={ptr.pointer.length} }}</DisplayString>
<Expand> <Expand>
<Item Name="[Length]" ExcludeView="simple">ptr.pointer.length</Item> <Item Name="[Length]" ExcludeView="simple">ptr.pointer.length</Item>
@ -172,7 +175,7 @@
</Type> </Type>
<!-- alloc::sync::Weak<[T]> --> <!-- alloc::sync::Weak<[T]> -->
<Type Name="alloc::sync::Weak&lt;slice2$&lt;*&gt; &gt;"> <Type Name="alloc::sync::Weak&lt;slice2$&lt;*&gt;,*&gt;">
<DisplayString>{{ len={ptr.pointer.length} }}</DisplayString> <DisplayString>{{ len={ptr.pointer.length} }}</DisplayString>
<Expand> <Expand>
<Item Name="[Length]" ExcludeView="simple">ptr.pointer.length</Item> <Item Name="[Length]" ExcludeView="simple">ptr.pointer.length</Item>

View File

@ -14,7 +14,7 @@
// //
// cdb-command:dx t,d // cdb-command:dx t,d
// cdb-check:t,d : [...] [Type: std::thread::Thread *] // cdb-check:t,d : [...] [Type: std::thread::Thread *]
// cdb-check:[...] inner [...][Type: core::pin::Pin<alloc::sync::Arc<std::thread::Inner,alloc::alloc::Global>>] // cdb-check:[...] inner [...][Type: core::pin::Pin<alloc::sync::Arc<std::thread::Inner,alloc::alloc::Global> >]
use std::thread; use std::thread;