about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorDeadbeef <ent3rm4n@gmail.com>2021-08-16 15:55:35 +0000
committerDeadbeef <ent3rm4n@gmail.com>2021-08-17 07:15:59 +0000
commit6bd2ecba726f06587d7d60ffca5605841ac39091 (patch)
tree778d2dc25e7da19edf808320e4c1c3adffda70e5 /src
parentb5afa6807b868bc8bb2e6f972629769b150ffd41 (diff)
downloadrust-6bd2ecba726f06587d7d60ffca5605841ac39091.tar.gz
rust-6bd2ecba726f06587d7d60ffca5605841ac39091.zip
Add ui test
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/rfc-2632-const-trait-impl/std-impl-gate.rs21
-rw-r--r--src/test/ui/rfc-2632-const-trait-impl/std-impl-gate.stock.stderr9
2 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/rfc-2632-const-trait-impl/std-impl-gate.rs b/src/test/ui/rfc-2632-const-trait-impl/std-impl-gate.rs
new file mode 100644
index 00000000000..c6975da7121
--- /dev/null
+++ b/src/test/ui/rfc-2632-const-trait-impl/std-impl-gate.rs
@@ -0,0 +1,21 @@
+// This tests feature gates for const impls in the standard library.
+
+// revisions: stock gated
+//[gated] run-pass
+
+#![cfg_attr(gated, feature(const_trait_impl, const_default_impls))]
+
+fn non_const_context() -> Vec<usize> {
+    Default::default()
+}
+
+const fn const_context() -> Vec<usize> {
+    Default::default()
+    //[stock]~^ ERROR calls in constant functions are limited
+}
+
+fn main() {
+    const VAL: Vec<usize> = const_context();
+
+    assert_eq!(VAL, non_const_context());
+}
diff --git a/src/test/ui/rfc-2632-const-trait-impl/std-impl-gate.stock.stderr b/src/test/ui/rfc-2632-const-trait-impl/std-impl-gate.stock.stderr
new file mode 100644
index 00000000000..55a0daaaec7
--- /dev/null
+++ b/src/test/ui/rfc-2632-const-trait-impl/std-impl-gate.stock.stderr
@@ -0,0 +1,9 @@
+error[E0015]: calls in constant functions are limited to constant functions, tuple structs and tuple variants
+  --> $DIR/std-impl-gate.rs:13:5
+   |
+LL |     Default::default()
+   |     ^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0015`.