#![feature(auto_traits)] #![feature(negative_impls)] auto trait MyTrait {} unsafe auto trait MyUnsafeTrait {} struct ThisImplsTrait; impl !MyUnsafeTrait for ThisImplsTrait {} struct ThisImplsUnsafeTrait; impl !MyTrait for ThisImplsUnsafeTrait {} fn is_my_trait() {} fn is_my_unsafe_trait() {} fn main() { is_my_trait::(); is_my_trait::(); //~^ ERROR `ThisImplsUnsafeTrait: MyTrait` is not satisfied is_my_unsafe_trait::(); //~^ ERROR `ThisImplsTrait: MyUnsafeTrait` is not satisfied is_my_unsafe_trait::(); }