diff --git a/src/etc/natvis/libcore.natvis b/src/etc/natvis/libcore.natvis
index 04e72c706b4b..624495fb5acb 100644
--- a/src/etc/natvis/libcore.natvis
+++ b/src/etc/natvis/libcore.natvis
@@ -75,6 +75,22 @@
{__0}
+
+ ({start}..{end})
+
+
+ ({start}..)
+
+
+ ({start}..={end})
+
+
+ (..{end})
+
+
+ (..={end})
+
+
NonNull({(void*) pointer}: {pointer})
diff --git a/src/test/debuginfo/range-types.rs b/src/test/debuginfo/range-types.rs
index c0288b6ba80e..7362a50a0301 100644
--- a/src/test/debuginfo/range-types.rs
+++ b/src/test/debuginfo/range-types.rs
@@ -9,26 +9,27 @@
// cdb-command: g
// cdb-command: dx r1,d
-// cdb-check:r1,d [Type: core::ops::range::Range]
-// cdb-check: [...] start : 3 [Type: int]
-// cdb-check: [...] end : 5 [Type: int]
+// cdb-check:r1,d : (3..5) [Type: core::ops::range::Range]
+// cdb-check: [] [Type: core::ops::range::Range]
// cdb-command: dx r2,d
-// cdb-check:r2,d [Type: core::ops::range::RangeFrom]
-// cdb-check: [...] start : 2 [Type: int]
+// cdb-check:r2,d : (2..) [Type: core::ops::range::RangeFrom]
+// cdb-check: [] [Type: core::ops::range::RangeFrom]
// cdb-command: dx r3,d
-// cdb-check:r3,d [Type: core::ops::range::RangeInclusive]
-// 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]
+// cdb-check: [] [Type: core::ops::range::RangeInclusive]
// cdb-command: dx r4,d
-// cdb-check:r4,d [Type: core::ops::range::RangeToInclusive]
-// cdb-check: [...] end : 3 [Type: int]
+// cdb-check:r4,d : (..10) [Type: core::ops::range::RangeTo]
+// cdb-check: [] [Type: core::ops::range::RangeTo]
// cdb-command: dx r5,d
-// cdb-check:r5,d [Type: core::ops::range::RangeFull]
+// cdb-check:r5,d : (..=3) [Type: core::ops::range::RangeToInclusive]
+// cdb-check: [] [Type: core::ops::range::RangeToInclusive]
+
+// 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
}