1 #![feature(auto_traits)] 2 #![feature(negative_impls)] 3 4 pub trait PubPrincipal {} 5 auto trait PrivNonPrincipal {} 6 leak_dyn_nonprincipal() -> Box<dyn PubPrincipal + PrivNonPrincipal>7pub fn leak_dyn_nonprincipal() -> Box<dyn PubPrincipal + PrivNonPrincipal> { loop {} } 8 //~^ WARN private trait `PrivNonPrincipal` in public interface 9 //~| WARN this was previously accepted 10 11 #[deny(missing_docs)] container()12fn container() { 13 impl dyn PubPrincipal { 14 pub fn check_doc_lint() {} //~ ERROR missing documentation for an associated function 15 } 16 impl dyn PubPrincipal + PrivNonPrincipal { 17 pub fn check_doc_lint() {} // OK, no missing doc lint 18 } 19 } 20 main()21fn main() {} 22