| #### 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() {} |
| ``` |