}
pub type Alias = Priv; //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
pub enum E {
V1(Priv), //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
V2 { field: Priv }, //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
pub trait Tr {
const C: Priv = Priv; //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
type Alias = Priv; //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
fn f1(arg: Priv) {} //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
fn f2() -> Priv { panic!() } //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
extern {
pub static ES: Priv; //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
pub fn ef1(arg: Priv); //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
pub fn ef2() -> Priv; //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
impl PubTr for Pub {
type Alias = Priv; //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
}
pub type Alias<T: PrivTr> = T; //~ WARN private trait in public interface
//~^ WARN trait bounds are not (yet) enforced in type definitions
- //~| WARNING HARD ERROR
+ //~| WARNING hard error
pub trait Tr1: PrivTr {} //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
pub trait Tr2<T: PrivTr> {} //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
pub trait Tr3 {
type Alias: PrivTr; //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
fn f<T: PrivTr>(arg: T) {} //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
impl<T: PrivTr> Pub<T> {} //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
impl<T: PrivTr> PubTr for Pub<T> {} //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
mod traits_where {
pub trait PubTr {}
pub type Alias<T> where T: PrivTr = T; //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
pub trait Tr2<T> where T: PrivTr {} //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
pub trait Tr3 {
fn f<T>(arg: T) where T: PrivTr {} //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
impl<T> Pub<T> where T: PrivTr {} //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
impl<T> PubTr for Pub<T> where T: PrivTr {} //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
mod generics {
pub trait PubTr<T> {}
pub trait Tr1: PrivTr<Pub> {} //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
pub trait Tr2: PubTr<Priv> {} //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
pub trait Tr3: PubTr<[Priv; 1]> {} //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
pub trait Tr4: PubTr<Pub<Priv>> {} //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
mod impls {
}
impl PubTr for Pub {
type Alias = Priv; //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
}
pub trait Tr1: PrivUseAliasTr {} // OK
// This should be OK, if type aliases are substituted
pub trait Tr2: PrivUseAliasTr<PrivAlias> {} //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
impl PrivAlias {
pub fn f(arg: Priv) {} //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
// This doesn't even parse
// impl <Priv as PrivTr>::AssocAlias {
// }
impl PrivUseAliasTr for PrivUseAlias {
type Check = Priv; //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
impl PrivUseAliasTr for PrivAlias {
type Check = Priv; //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
impl PrivUseAliasTr for <Priv as PrivTr>::AssocAlias {
type Check = Priv; //~ WARN private type in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
}
}
impl PrivTr for Priv {}
pub trait Tr1: PrivUseAliasTr {} //~ WARN private trait in public interface
- //~^ WARNING HARD ERROR
+ //~^ WARNING hard error
pub trait Tr2: PrivUseAliasTr<PrivAlias> {} //~ WARN private trait in public interface
//~^ WARN private type in public interface
- //~| WARNING HARD ERROR
- //~| WARNING HARD ERROR
+ //~| WARNING hard error
+ //~| WARNING hard error
impl PrivUseAlias {
pub fn f(arg: Priv) {} // OK