// EMIT_MIR enum_cast.foo.built.after.mir // EMIT_MIR enum_cast.bar.built.after.mir // EMIT_MIR enum_cast.boo.built.after.mir enum Foo { A } enum Bar { A, B } #[repr(u8)] enum Boo { A, B } fn foo(foo: Foo) -> usize { foo as usize } fn bar(bar: Bar) -> usize { bar as usize } fn boo(boo: Boo) -> usize { boo as usize } // EMIT_MIR enum_cast.droppy.built.after.mir enum Droppy { A, B, C } impl Drop for Droppy { fn drop(&mut self) {} } fn droppy() { { let x = Droppy::C; // remove this entire test once `cenum_impl_drop_cast` becomes a hard error #[allow(cenum_impl_drop_cast)] let y = x as usize; } let z = Droppy::B; } fn main() { }