| #### Note: this error code is no longer emitted by the compiler. | |
| A private trait was used on a public type parameter bound. | |
| Previously erroneous code examples: | |
| ``` | |
| trait Foo { | |
| fn dummy(&self) { } | |
| } | |
| pub trait Bar : Foo {} // error: private trait in public interface | |
| pub struct Bar2<T: Foo>(pub T); // same error | |
| pub fn foo<T: Foo> (t: T) {} // same error | |
| fn main() {} | |
| ``` | |
| To solve this error, please ensure that the trait is also public. The trait | |
| can be made inaccessible if necessary by placing it into a private inner | |
| module, but it still has to be marked with `pub`. Example: | |
| ``` | |
| pub trait Foo { // we set the Foo trait public | |
| fn dummy(&self) { } | |
| } | |
| pub trait Bar : Foo {} // ok! | |
| pub struct Bar2<T: Foo>(pub T); // ok! | |
| pub fn foo<T: Foo> (t: T) {} // ok! | |
| fn main() {} | |
| ``` |