diff options
Diffstat (limited to '')
-rw-r--r-- | src/test/ui/associated-consts/associated-const-range-match-patterns.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/test/ui/associated-consts/associated-const-range-match-patterns.rs b/src/test/ui/associated-consts/associated-const-range-match-patterns.rs new file mode 100644 index 000000000..5276869a7 --- /dev/null +++ b/src/test/ui/associated-consts/associated-const-range-match-patterns.rs @@ -0,0 +1,40 @@ +// run-pass +#![allow(dead_code, unreachable_patterns)] +#![allow(ellipsis_inclusive_range_patterns)] + +struct Foo; + +trait HasNum { + const NUM: isize; +} +impl HasNum for Foo { + const NUM: isize = 1; +} + +fn main() { + assert!(match 2 { + Foo::NUM ... 3 => true, + _ => false, + }); + assert!(match 0 { + -1 ... <Foo as HasNum>::NUM => true, + _ => false, + }); + assert!(match 1 { + <Foo as HasNum>::NUM ... <Foo>::NUM => true, + _ => false, + }); + + assert!(match 2 { + Foo::NUM ..= 3 => true, + _ => false, + }); + assert!(match 0 { + -1 ..= <Foo as HasNum>::NUM => true, + _ => false, + }); + assert!(match 1 { + <Foo as HasNum>::NUM ..= <Foo>::NUM => true, + _ => false, + }); +} |