Add natvis for Range types

This commit is contained in:
Wesley Wiser 2021-06-29 17:04:23 -04:00
parent 8f1eec3754
commit f2aba34eea
2 changed files with 35 additions and 17 deletions

View File

@ -75,6 +75,22 @@
<DisplayString>{__0}</DisplayString>
</Type>
<Type Name="core::ops::range::Range&lt;*&gt;">
<DisplayString>({start}..{end})</DisplayString>
</Type>
<Type Name="core::ops::range::RangeFrom&lt;*&gt;">
<DisplayString>({start}..)</DisplayString>
</Type>
<Type Name="core::ops::range::RangeInclusive&lt;*&gt;">
<DisplayString>({start}..={end})</DisplayString>
</Type>
<Type Name="core::ops::range::RangeTo&lt;*&gt;">
<DisplayString>(..{end})</DisplayString>
</Type>
<Type Name="core::ops::range::RangeToInclusive&lt;*&gt;">
<DisplayString>(..={end})</DisplayString>
</Type>
<Type Name="core::ptr::non_null::NonNull&lt;*&gt;">
<DisplayString>NonNull({(void*) pointer}: {pointer})</DisplayString>
<Expand>

View File

@ -9,26 +9,27 @@
// cdb-command: g
// cdb-command: dx r1,d
// cdb-check:r1,d [Type: core::ops::range::Range<i32>]
// cdb-check: [...] start : 3 [Type: int]
// cdb-check: [...] end : 5 [Type: int]
// cdb-check:r1,d : (3..5) [Type: core::ops::range::Range<i32>]
// cdb-check: [<Raw View>] [Type: core::ops::range::Range<i32>]
// cdb-command: dx r2,d
// cdb-check:r2,d [Type: core::ops::range::RangeFrom<i32>]
// cdb-check: [...] start : 2 [Type: int]
// cdb-check:r2,d : (2..) [Type: core::ops::range::RangeFrom<i32>]
// cdb-check: [<Raw View>] [Type: core::ops::range::RangeFrom<i32>]
// cdb-command: dx r3,d
// cdb-check:r3,d [Type: core::ops::range::RangeInclusive<i32>]
// cdb-check: [...] start : 1 [Type: int]
// cdb-check: [...] end : 4 [Type: int]
// cdb-check: [...] exhausted : false [Type: bool]
// cdb-check:r3,d : (1..=4) [Type: core::ops::range::RangeInclusive<i32>]
// cdb-check: [<Raw View>] [Type: core::ops::range::RangeInclusive<i32>]
// cdb-command: dx r4,d
// cdb-check:r4,d [Type: core::ops::range::RangeToInclusive<i32>]
// cdb-check: [...] end : 3 [Type: int]
// cdb-check:r4,d : (..10) [Type: core::ops::range::RangeTo<i32>]
// cdb-check: [<Raw View>] [Type: core::ops::range::RangeTo<i32>]
// cdb-command: dx r5,d
// cdb-check:r5,d [Type: core::ops::range::RangeFull]
// cdb-check:r5,d : (..=3) [Type: core::ops::range::RangeToInclusive<i32>]
// cdb-check: [<Raw View>] [Type: core::ops::range::RangeToInclusive<i32>]
// cdb-command: dx r6,d
// cdb-check:r6,d [Type: core::ops::range::RangeFull]
#[allow(unused_variables)]
@ -36,11 +37,12 @@ use std::ops::{Range, RangeFrom, RangeFull, RangeInclusive, RangeToInclusive};
fn main()
{
let r1 = Range{start: 3, end: 5};
let r2 = RangeFrom{start: 2};
let r3 = RangeInclusive::new(1, 4);
let r4 = RangeToInclusive{end: 3};
let r5 = RangeFull{};
let r1 = (3..5);
let r2 = (2..);
let r3 = (1..=4);
let r4 = (..10);
let r5 = (..=3);
let r6 = (..);
zzz(); // #break
}