2017-12-10 17:08:34 -06:00
|
|
|
// normalize-stderr-32bit: "&str \(64 bits\)" -> "&str ($$STR bits)"
|
|
|
|
// normalize-stderr-64bit: "&str \(128 bits\)" -> "&str ($$STR bits)"
|
2017-07-06 00:54:58 -05:00
|
|
|
|
|
|
|
|
2017-06-04 08:02:05 -05:00
|
|
|
|
2017-05-29 18:22:41 -05:00
|
|
|
#![feature(untagged_unions)]
|
|
|
|
use std::mem::transmute;
|
|
|
|
|
|
|
|
pub trait TypeConstructor<'a> {
|
|
|
|
type T;
|
|
|
|
}
|
|
|
|
|
|
|
|
unsafe fn transmute_lifetime<'a, 'b, C>(x: <C as TypeConstructor<'a>>::T)
|
|
|
|
-> <C as TypeConstructor<'b>>::T
|
|
|
|
where for<'z> C: TypeConstructor<'z> {
|
|
|
|
transmute(x) //~ ERROR transmute called with types of different sizes
|
|
|
|
}
|
|
|
|
|
|
|
|
unsafe fn sizes() {
|
|
|
|
let x: u8 = transmute(10u16); //~ ERROR transmute called with types of different sizes
|
|
|
|
}
|
|
|
|
|
|
|
|
unsafe fn ptrs() {
|
|
|
|
let x: u8 = transmute("test"); //~ ERROR transmute called with types of different sizes
|
|
|
|
}
|
|
|
|
|
|
|
|
union Foo { x: () }
|
|
|
|
unsafe fn vary() {
|
|
|
|
let x: Foo = transmute(10); //~ ERROR transmute called with types of different sizes
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {}
|