]> git.lizzy.rs Git - rust.git/commitdiff
diagnostics: add test case for bogus T:Sized suggestion
authorMichael Howell <michael@notriddle.com>
Sat, 2 Apr 2022 16:57:04 +0000 (09:57 -0700)
committerMichael Howell <michael@notriddle.com>
Sat, 2 Apr 2022 16:57:04 +0000 (09:57 -0700)
Closes #69228

src/test/ui/consts/const-eval/size-of-t.rs [new file with mode: 0644]
src/test/ui/consts/const-eval/size-of-t.stderr [new file with mode: 0644]

diff --git a/src/test/ui/consts/const-eval/size-of-t.rs b/src/test/ui/consts/const-eval/size-of-t.rs
new file mode 100644 (file)
index 0000000..efbdeec
--- /dev/null
@@ -0,0 +1,13 @@
+// https://github.com/rust-lang/rust/issues/69228
+// Used to give bogus suggestion about T not being Sized.
+
+use std::mem::size_of;
+
+fn foo<T>() {
+    let _arr: [u8; size_of::<T>()];
+    //~^ ERROR generic parameters may not be used in const operations
+    //~| NOTE cannot perform const operation
+    //~| NOTE type parameters may not be used in const expressions
+}
+
+fn main() {}
diff --git a/src/test/ui/consts/const-eval/size-of-t.stderr b/src/test/ui/consts/const-eval/size-of-t.stderr
new file mode 100644 (file)
index 0000000..abe6410
--- /dev/null
@@ -0,0 +1,11 @@
+error: generic parameters may not be used in const operations
+  --> $DIR/size-of-t.rs:7:30
+   |
+LL |     let _arr: [u8; size_of::<T>()];
+   |                              ^ cannot perform const operation using `T`
+   |
+   = note: type parameters may not be used in const expressions
+   = help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
+
+error: aborting due to previous error
+