///
/// This is intended specifically to mirror LLVM’s `!range` metadata,
/// semantics.
-#[derive(Clone, PartialEq, Eq, Hash, Debug)]
+#[derive(Clone, PartialEq, Eq, Hash)]
#[derive(HashStable_Generic)]
pub struct WrappingRange {
pub start: u128,
}
}
+impl fmt::Debug for WrappingRange {
+ fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
+ write!(fmt, "{}..={}", self.start, self.end)?;
+ Ok(())
+ }
+}
+
/// Information about one scalar component of a Rust type.
#[derive(Clone, PartialEq, Eq, Hash, Debug)]
#[derive(HashStable_Generic)]
--> $DIR/ub-nonnull.rs:41:1
|
LL | const BAD_RANGE1: RestrictedRange1 = unsafe { RestrictedRange1(42) };
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 42, but expected something in the range AllocationRange { start: 10, end: 30 }
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 42, but expected something in the range 10..=30
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.
= note: the raw bytes of the constant (size: 4, align: 4) {
--> $DIR/ub-nonnull.rs:41:1
|
LL | const BAD_RANGE1: RestrictedRange1 = unsafe { RestrictedRange1(42) };
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 42, but expected something in the range AllocationRange { start: 10, end: 30 }
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type validation failed: encountered 42, but expected something in the range 10..=30
|
= note: The rules on what exactly is undefined behavior aren't clear, so this check might be overzealous. Please open an issue on the rustc repository if you believe it should not be considered undefined behavior.
= note: the raw bytes of the constant (size: 4, align: 4) {
I32,
false,
),
- valid_range: AllocationRange {
- start: 0,
- end: 0,
- },
+ valid_range: 0..=0,
},
tag_encoding: Direct,
tag_field: 0,
I32,
false,
),
- valid_range: AllocationRange {
- start: 0,
- end: 0,
- },
+ valid_range: 0..=0,
},
},
),
I32,
true,
),
- valid_range: AllocationRange {
- start: 0,
- end: 4294967295,
- },
+ valid_range: 0..=4294967295,
},
Scalar {
value: Int(
I32,
true,
),
- valid_range: AllocationRange {
- start: 0,
- end: 4294967295,
- },
+ valid_range: 0..=4294967295,
},
),
largest_niche: None,
I32,
false,
),
- valid_range: AllocationRange {
- start: 0,
- end: 1,
- },
+ valid_range: 0..=1,
},
tag_encoding: Direct,
tag_field: 0,
I32,
false,
),
- valid_range: AllocationRange {
- start: 0,
- end: 1,
- },
+ valid_range: 0..=1,
},
Scalar {
value: Int(
I32,
true,
),
- valid_range: AllocationRange {
- start: 0,
- end: 4294967295,
- },
+ valid_range: 0..=4294967295,
},
),
largest_niche: Some(
I32,
false,
),
- valid_range: AllocationRange {
- start: 0,
- end: 1,
- },
+ valid_range: 0..=1,
},
},
),
I32,
true,
),
- valid_range: AllocationRange {
- start: 0,
- end: 4294967295,
- },
+ valid_range: 0..=4294967295,
},
),
largest_niche: None,
I8,
false,
),
- valid_range: AllocationRange {
- start: 0,
- end: 0,
- },
+ valid_range: 0..=0,
},
tag_encoding: Direct,
tag_field: 0,
I8,
false,
),
- valid_range: AllocationRange {
- start: 0,
- end: 0,
- },
+ valid_range: 0..=0,
},
),
largest_niche: Some(
I8,
false,
),
- valid_range: AllocationRange {
- start: 0,
- end: 0,
- },
+ valid_range: 0..=0,
},
},
),
I8,
false,
),
- valid_range: AllocationRange {
- start: 255,
- end: 255,
- },
+ valid_range: 255..=255,
},
tag_encoding: Direct,
tag_field: 0,
I8,
false,
),
- valid_range: AllocationRange {
- start: 255,
- end: 255,
- },
+ valid_range: 255..=255,
},
),
largest_niche: Some(
I8,
false,
),
- valid_range: AllocationRange {
- start: 255,
- end: 255,
- },
+ valid_range: 255..=255,
},
},
),
I16,
false,
),
- valid_range: AllocationRange {
- start: 256,
- end: 256,
- },
+ valid_range: 256..=256,
},
tag_encoding: Direct,
tag_field: 0,
I16,
false,
),
- valid_range: AllocationRange {
- start: 256,
- end: 256,
- },
+ valid_range: 256..=256,
},
),
largest_niche: Some(
I16,
false,
),
- valid_range: AllocationRange {
- start: 256,
- end: 256,
- },
+ valid_range: 256..=256,
},
},
),
I32,
false,
),
- valid_range: AllocationRange {
- start: 268435456,
- end: 268435456,
- },
+ valid_range: 268435456..=268435456,
},
tag_encoding: Direct,
tag_field: 0,
I32,
false,
),
- valid_range: AllocationRange {
- start: 268435456,
- end: 268435456,
- },
+ valid_range: 268435456..=268435456,
},
),
largest_niche: Some(
I32,
false,
),
- valid_range: AllocationRange {
- start: 268435456,
- end: 268435456,
- },
+ valid_range: 268435456..=268435456,
},
},
),
I32,
true,
),
- valid_range: AllocationRange {
- start: 2164260864,
- end: 2164260864,
- },
+ valid_range: 2164260864..=2164260864,
},
tag_encoding: Direct,
tag_field: 0,
I32,
true,
),
- valid_range: AllocationRange {
- start: 2164260864,
- end: 2164260864,
- },
+ valid_range: 2164260864..=2164260864,
},
),
largest_niche: Some(
I32,
true,
),
- valid_range: AllocationRange {
- start: 2164260864,
- end: 2164260864,
- },
+ valid_range: 2164260864..=2164260864,
},
},
),
I8,
false,
),
- valid_range: AllocationRange {
- start: 0,
- end: 0,
- },
+ valid_range: 0..=0,
},
tag_encoding: Direct,
tag_field: 0,
I8,
false,
),
- valid_range: AllocationRange {
- start: 0,
- end: 0,
- },
+ valid_range: 0..=0,
},
),
largest_niche: Some(
I8,
false,
),
- valid_range: AllocationRange {
- start: 0,
- end: 0,
- },
+ valid_range: 0..=0,
},
},
),
I8,
false,
),
- valid_range: AllocationRange {
- start: 255,
- end: 255,
- },
+ valid_range: 255..=255,
},
tag_encoding: Direct,
tag_field: 0,
I8,
false,
),
- valid_range: AllocationRange {
- start: 255,
- end: 255,
- },
+ valid_range: 255..=255,
},
),
largest_niche: Some(
I8,
false,
),
- valid_range: AllocationRange {
- start: 255,
- end: 255,
- },
+ valid_range: 255..=255,
},
},
),
I16,
false,
),
- valid_range: AllocationRange {
- start: 256,
- end: 256,
- },
+ valid_range: 256..=256,
},
tag_encoding: Direct,
tag_field: 0,
I16,
false,
),
- valid_range: AllocationRange {
- start: 256,
- end: 256,
- },
+ valid_range: 256..=256,
},
),
largest_niche: Some(
I16,
false,
),
- valid_range: AllocationRange {
- start: 256,
- end: 256,
- },
+ valid_range: 256..=256,
},
},
),
I32,
false,
),
- valid_range: AllocationRange {
- start: 268435456,
- end: 268435456,
- },
+ valid_range: 268435456..=268435456,
},
tag_encoding: Direct,
tag_field: 0,
I32,
false,
),
- valid_range: AllocationRange {
- start: 268435456,
- end: 268435456,
- },
+ valid_range: 268435456..=268435456,
},
),
largest_niche: Some(
I32,
false,
),
- valid_range: AllocationRange {
- start: 268435456,
- end: 268435456,
- },
+ valid_range: 268435456..=268435456,
},
},
),
I32,
true,
),
- valid_range: AllocationRange {
- start: 2164260864,
- end: 2164260864,
- },
+ valid_range: 2164260864..=2164260864,
},
tag_encoding: Direct,
tag_field: 0,
I32,
true,
),
- valid_range: AllocationRange {
- start: 2164260864,
- end: 2164260864,
- },
+ valid_range: 2164260864..=2164260864,
},
),
largest_niche: Some(
I32,
true,
),
- valid_range: AllocationRange {
- start: 2164260864,
- end: 2164260864,
- },
+ valid_range: 2164260864..=2164260864,
},
},
),