// Tests that `transmute` cannot be called on type parameters. use std::mem::transmute; unsafe fn f(x: T) { let _: i32 = transmute(x); //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types } unsafe fn g(x: (T, i32)) { let _: i32 = transmute(x); //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types } unsafe fn h(x: [T; 10]) { let _: i32 = transmute(x); //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types } struct Bad { f: T, } unsafe fn i(x: Bad) { let _: i32 = transmute(x); //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types } enum Worse { A(T), B, } unsafe fn j(x: Worse) { let _: i32 = transmute(x); //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types } unsafe fn k(x: Option) { let _: i32 = transmute(x); //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types } fn main() {}