about summary refs log tree commit diff
path: root/tests/ui/associated-consts/associated-const-range-match-patterns.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/associated-consts/associated-const-range-match-patterns.rs')
-rw-r--r--tests/ui/associated-consts/associated-const-range-match-patterns.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/ui/associated-consts/associated-const-range-match-patterns.rs b/tests/ui/associated-consts/associated-const-range-match-patterns.rs
new file mode 100644
index 00000000000..5276869a702
--- /dev/null
+++ b/tests/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,
+    });
+}