// normalize-stderr-test "\d+ bits" -> "N bits" // Tests that `transmute` cannot be called on types of different size. #![allow(warnings)] #![feature(specialization)] use std::mem::transmute; unsafe fn f() { let _: i8 = transmute(16i16); //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types } unsafe fn g(x: &T) { let _: i8 = transmute(x); //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types } trait Specializable { type Output; } impl Specializable for T { default type Output = u16; } unsafe fn specializable(x: u16) -> ::Output { transmute(x) //~^ ERROR cannot transmute between types of different sizes, or dependently-sized types } fn main() {}