1 // Tests that `transmute` cannot be called on type parameters.
3 use std::mem::transmute;
6 let _: i32 = transmute(x);
7 //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types
10 unsafe fn g<T>(x: (T, i32)) {
11 let _: i32 = transmute(x);
12 //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types
15 unsafe fn h<T>(x: [T; 10]) {
16 let _: i32 = transmute(x);
17 //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types
24 unsafe fn i<T>(x: Bad<T>) {
25 let _: i32 = transmute(x);
26 //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types
34 unsafe fn j<T>(x: Worse<T>) {
35 let _: i32 = transmute(x);
36 //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types
39 unsafe fn k<T>(x: Option<T>) {
40 let _: i32 = transmute(x);
41 //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types