//@ compile-flags: --crate-type=lib //@ revisions: current next //@[next] compile-flags: -Znext-solver #![feature(auto_traits)] #![feature(unsafe_fields)] #![allow(incomplete_features)] enum UnsafeEnum { Safe(u8), Unsafe { unsafe field: u8 }, } auto trait SafeAuto {} fn impl_safe_auto(_: impl SafeAuto) {} unsafe auto trait UnsafeAuto {} fn impl_unsafe_auto(_: impl UnsafeAuto) {} fn tests() { impl_safe_auto(UnsafeEnum::Safe(42)); impl_unsafe_auto(UnsafeEnum::Safe(42)); //~^ ERROR the trait bound `UnsafeEnum: UnsafeAuto` is not satisfied }