about summary refs log tree commit diff
path: root/src/test/ui/array-slice-vec
diff options
context:
space:
mode:
authorJonas Schievink <jonasschievink@gmail.com>2021-01-31 16:36:42 +0100
committerGitHub <noreply@github.com>2021-01-31 16:36:42 +0100
commit99f2f5a830df02c0c26ec046dbf979daa190b2f2 (patch)
treefcee8d55938e70bfd06c4dde28891d8390547627 /src/test/ui/array-slice-vec
parent7e3a8ec6888a04a4ebc248f6178ae02b48dea3b6 (diff)
parent6946534d84161353b56157f65f8cdcdfb93df749 (diff)
downloadrust-99f2f5a830df02c0c26ec046dbf979daa190b2f2.tar.gz
rust-99f2f5a830df02c0c26ec046dbf979daa190b2f2.zip
Rollup merge of #80404 - JulianKnodt:arr_ref, r=oli-obk
Remove const_in_array_repeat

Fixes #80371. Fixes #81315. Fixes #80767. Fixes #75682.

I thought there might be some issue with `Repeats(_, 0)`, but if you increase the items in the array it still ICEs. I'm not sure if this is the best fix but it does fix the given issue.
Diffstat (limited to 'src/test/ui/array-slice-vec')
-rw-r--r--src/test/ui/array-slice-vec/repeat_empty_ok.rs15
-rw-r--r--src/test/ui/array-slice-vec/repeat_empty_ok.stderr19
2 files changed, 34 insertions, 0 deletions
diff --git a/src/test/ui/array-slice-vec/repeat_empty_ok.rs b/src/test/ui/array-slice-vec/repeat_empty_ok.rs
new file mode 100644
index 00000000000..25463ea5ee8
--- /dev/null
+++ b/src/test/ui/array-slice-vec/repeat_empty_ok.rs
@@ -0,0 +1,15 @@
+#![crate_type = "lib"]
+
+pub struct Header<'a> {
+    pub value: &'a [u8],
+}
+
+pub fn test() {
+    let headers = [Header{value: &[]}; 128];
+    //~^ ERROR the trait bound
+}
+
+pub fn test2() {
+    let headers = [Header{value: &[0]}; 128];
+    //~^ ERROR the trait bound
+}
diff --git a/src/test/ui/array-slice-vec/repeat_empty_ok.stderr b/src/test/ui/array-slice-vec/repeat_empty_ok.stderr
new file mode 100644
index 00000000000..85baa1268bf
--- /dev/null
+++ b/src/test/ui/array-slice-vec/repeat_empty_ok.stderr
@@ -0,0 +1,19 @@
+error[E0277]: the trait bound `Header<'_>: Copy` is not satisfied
+  --> $DIR/repeat_empty_ok.rs:8:19
+   |
+LL |     let headers = [Header{value: &[]}; 128];
+   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `Header<'_>`
+   |
+   = note: the `Copy` trait is required because the repeated element will be copied
+
+error[E0277]: the trait bound `Header<'_>: Copy` is not satisfied
+  --> $DIR/repeat_empty_ok.rs:13:19
+   |
+LL |     let headers = [Header{value: &[0]}; 128];
+   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `Header<'_>`
+   |
+   = note: the `Copy` trait is required because the repeated element will be copied
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0277`.