#![deny(dead_code)] struct Foo(u8); //~ ERROR struct `Foo` is never constructed enum Bar { //~ ERROR enum `Bar` is never used Var1(u8), Var2(u8), } pub trait Tr1 { fn f1() -> Self; } impl Tr1 for Foo { fn f1() -> Foo { let f = Foo(0); let Foo(tag) = f; Foo(tag) } } impl Tr1 for Bar { fn f1() -> Bar { let b = Bar::Var1(0); let b = if let Bar::Var1(_) = b { Bar::Var1(0) } else { Bar::Var2(0) }; match b { Bar::Var1(_) => Bar::Var2(0), Bar::Var2(_) => Bar::Var1(0), } } } fn main() {}