summaryrefslogtreecommitdiffstats
path: root/tests/ui/generic-const-items/feature-gate-generic_const_items.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/generic-const-items/feature-gate-generic_const_items.rs')
-rw-r--r--tests/ui/generic-const-items/feature-gate-generic_const_items.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/ui/generic-const-items/feature-gate-generic_const_items.rs b/tests/ui/generic-const-items/feature-gate-generic_const_items.rs
new file mode 100644
index 000000000..5c241f256
--- /dev/null
+++ b/tests/ui/generic-const-items/feature-gate-generic_const_items.rs
@@ -0,0 +1,37 @@
+pub trait Trait<A> {
+ const ONE<T>: i32;
+ //~^ ERROR generic const items are experimental
+
+ const TWO: ()
+ where
+ A: Copy;
+ //~^^ ERROR generic const items are experimental
+}
+
+const CONST<T>: i32 = 0;
+//~^ ERROR generic const items are experimental
+
+const EMPTY<>: i32 = 0;
+//~^ ERROR generic const items are experimental
+
+const TRUE: () = ()
+where
+ String: Clone;
+//~^^ ERROR generic const items are experimental
+
+// Ensure that we flag generic const items inside macro calls as well:
+
+macro_rules! discard {
+ ($item:item) => {}
+}
+
+discard! { const FREE<T>: () = (); }
+//~^ ERROR generic const items are experimental
+
+discard! { impl () { const ASSOC<const N: ()>: () = (); } }
+//~^ ERROR generic const items are experimental
+
+discard! { impl () { const ASSOC: i32 = 0 where String: Copy; } }
+//~^ ERROR generic const items are experimental
+
+fn main() {}