提交 6971c5d5 编写于 作者: V varkor

Add some extra edge case tests

上级 dec55631
......@@ -1441,7 +1441,8 @@ fn split_grouped_constructors<'p, 'a: 'p, 'tcx: 'a>(
let ctor_range = IntRange::from_ctor(tcx, &ctor).unwrap();
/// Represents a border between 2 integers. Because the intervals spanning borders
/// must be able to cover every integer, we need 2^128 + 1 such borders.
/// must be able to cover every integer, we need to be able to represent
/// 2^128 + 1 such borders.
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
enum Border {
JustBefore(u128),
......
......@@ -162,4 +162,12 @@ fn main() {
match 0u128 { //~ ERROR non-exhaustive patterns
0 ..= LIM => {}
}
match 0u128 { //~ ERROR non-exhaustive patterns
0 ..= 4 => {}
}
match 0u128 { //~ ERROR non-exhaustive patterns
4 ..= u128::MAX => {}
}
}
......@@ -70,6 +70,18 @@ error[E0004]: non-exhaustive patterns: `340282366920938463463374607431768211455u
LL | match 0u128 { //~ ERROR non-exhaustive patterns
| ^^^^^ pattern `340282366920938463463374607431768211455u128` not covered
error: aborting due to 11 previous errors
error[E0004]: non-exhaustive patterns: `5u128..=340282366920938463463374607431768211455u128` not covered
--> $DIR/exhaustive_integer_patterns.rs:166:11
|
LL | match 0u128 { //~ ERROR non-exhaustive patterns
| ^^^^^ pattern `5u128..=340282366920938463463374607431768211455u128` not covered
error[E0004]: non-exhaustive patterns: `0u128..=3u128` not covered
--> $DIR/exhaustive_integer_patterns.rs:170:11
|
LL | match 0u128 { //~ ERROR non-exhaustive patterns
| ^^^^^ pattern `0u128..=3u128` not covered
error: aborting due to 13 previous errors
For more information about this error, try `rustc --explain E0004`.
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册