summaryrefslogtreecommitdiffstats
path: root/tests/ui/const-generics/transmute-fail.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/const-generics/transmute-fail.stderr')
-rw-r--r--tests/ui/const-generics/transmute-fail.stderr52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/ui/const-generics/transmute-fail.stderr b/tests/ui/const-generics/transmute-fail.stderr
new file mode 100644
index 000000000..41b098135
--- /dev/null
+++ b/tests/ui/const-generics/transmute-fail.stderr
@@ -0,0 +1,52 @@
+error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
+ --> $DIR/transmute-fail.rs:7:5
+ |
+LL | std::mem::transmute(v)
+ | ^^^^^^^^^^^^^^^^^^^
+ |
+ = note: source type: `[[u32; H+1]; W]` (generic size [const expr])
+ = note: target type: `[[u32; W+1]; H]` (generic size [const expr])
+
+error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
+ --> $DIR/transmute-fail.rs:16:5
+ |
+LL | std::mem::transmute(v)
+ | ^^^^^^^^^^^^^^^^^^^
+ |
+ = note: source type: `[[u32; H]; W]` (this type does not have a fixed size)
+ = note: target type: `[[u32; W]; H]` (size can vary because of [u32; W])
+
+error[E0308]: mismatched types
+ --> $DIR/transmute-fail.rs:12:53
+ |
+LL | fn bar<const W: bool, const H: usize>(v: [[u32; H]; W]) -> [[u32; W]; H] {
+ | ^ expected `usize`, found `bool`
+
+error[E0308]: mismatched types
+ --> $DIR/transmute-fail.rs:12:67
+ |
+LL | fn bar<const W: bool, const H: usize>(v: [[u32; H]; W]) -> [[u32; W]; H] {
+ | ^ expected `usize`, found `bool`
+
+error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
+ --> $DIR/transmute-fail.rs:23:5
+ |
+LL | std::mem::transmute(v)
+ | ^^^^^^^^^^^^^^^^^^^
+ |
+ = note: source type: `[[u32; H]; W]` (generic size [const expr])
+ = note: target type: `[u32; W * H * H]` (generic size [const expr])
+
+error[E0512]: cannot transmute between types of different sizes, or dependently-sized types
+ --> $DIR/transmute-fail.rs:30:5
+ |
+LL | std::mem::transmute(v)
+ | ^^^^^^^^^^^^^^^^^^^
+ |
+ = note: source type: `[[[u32; 8888888]; 9999999]; 777777777]` (values of the type `[[[u32; 8888888]; 9999999]; 777777777]` are too big for the current architecture)
+ = note: target type: `[[[u32; 9999999]; 777777777]; 8888888]` (values of the type `[[[u32; 9999999]; 777777777]; 8888888]` are too big for the current architecture)
+
+error: aborting due to 6 previous errors
+
+Some errors have detailed explanations: E0308, E0512.
+For more information about an error, try `rustc --explain E0308`.