@@ -26,23 +26,34 @@ mod types {
2626 }
2727
2828 pub type Alias = Priv ; //~ WARN private type in public interface
29+ //~^ WARNING hard error
2930 pub enum E {
3031 V1 ( Priv ) , //~ WARN private type in public interface
32+ //~^ WARNING hard error
3133 V2 { field : Priv } , //~ WARN private type in public interface
34+ //~^ WARNING hard error
3235 }
3336 pub trait Tr {
3437 const C : Priv = Priv ; //~ WARN private type in public interface
38+ //~^ WARNING hard error
3539 type Alias = Priv ; //~ WARN private type in public interface
40+ //~^ WARNING hard error
3641 fn f1 ( arg : Priv ) { } //~ WARN private type in public interface
42+ //~^ WARNING hard error
3743 fn f2 ( ) -> Priv { panic ! ( ) } //~ WARN private type in public interface
44+ //~^ WARNING hard error
3845 }
3946 extern {
4047 pub static ES : Priv ; //~ WARN private type in public interface
48+ //~^ WARNING hard error
4149 pub fn ef1 ( arg : Priv ) ; //~ WARN private type in public interface
50+ //~^ WARNING hard error
4251 pub fn ef2 ( ) -> Priv ; //~ WARN private type in public interface
52+ //~^ WARNING hard error
4353 }
4454 impl PubTr for Pub {
4555 type Alias = Priv ; //~ WARN private type in public interface
56+ //~^ WARNING hard error
4657 }
4758}
4859
@@ -53,14 +64,21 @@ mod traits {
5364
5465 pub type Alias < T : PrivTr > = T ; //~ WARN private trait in public interface
5566 //~^ WARN trait bounds are not (yet) enforced in type definitions
67+ //~| WARNING hard error
5668 pub trait Tr1 : PrivTr { } //~ WARN private trait in public interface
69+ //~^ WARNING hard error
5770 pub trait Tr2 < T : PrivTr > { } //~ WARN private trait in public interface
71+ //~^ WARNING hard error
5872 pub trait Tr3 {
5973 type Alias : PrivTr ; //~ WARN private trait in public interface
74+ //~^ WARNING hard error
6075 fn f < T : PrivTr > ( arg : T ) { } //~ WARN private trait in public interface
76+ //~^ WARNING hard error
6177 }
6278 impl < T : PrivTr > Pub < T > { } //~ WARN private trait in public interface
79+ //~^ WARNING hard error
6380 impl < T : PrivTr > PubTr for Pub < T > { } //~ WARN private trait in public interface
81+ //~^ WARNING hard error
6482}
6583
6684mod traits_where {
@@ -69,12 +87,17 @@ mod traits_where {
6987 pub trait PubTr { }
7088
7189 pub type Alias < T > where T : PrivTr = T ; //~ WARN private trait in public interface
90+ //~^ WARNING hard error
7291 pub trait Tr2 < T > where T : PrivTr { } //~ WARN private trait in public interface
92+ //~^ WARNING hard error
7393 pub trait Tr3 {
7494 fn f < T > ( arg : T ) where T : PrivTr { } //~ WARN private trait in public interface
95+ //~^ WARNING hard error
7596 }
7697 impl < T > Pub < T > where T : PrivTr { } //~ WARN private trait in public interface
98+ //~^ WARNING hard error
7799 impl < T > PubTr for Pub < T > where T : PrivTr { } //~ WARN private trait in public interface
100+ //~^ WARNING hard error
78101}
79102
80103mod generics {
@@ -84,9 +107,13 @@ mod generics {
84107 pub trait PubTr < T > { }
85108
86109 pub trait Tr1 : PrivTr < Pub > { } //~ WARN private trait in public interface
110+ //~^ WARNING hard error
87111 pub trait Tr2 : PubTr < Priv > { } //~ WARN private type in public interface
112+ //~^ WARNING hard error
88113 pub trait Tr3 : PubTr < [ Priv ; 1 ] > { } //~ WARN private type in public interface
114+ //~^ WARNING hard error
89115 pub trait Tr4 : PubTr < Pub < Priv > > { } //~ WARN private type in public interface
116+ //~^ WARNING hard error
90117}
91118
92119mod impls {
@@ -113,6 +140,7 @@ mod impls {
113140 }
114141 impl PubTr for Pub {
115142 type Alias = Priv ; //~ WARN private type in public interface
143+ //~^ WARNING hard error
116144 }
117145}
118146
@@ -179,22 +207,27 @@ mod aliases_pub {
179207 pub trait Tr1 : PrivUseAliasTr { } // OK
180208 // This should be OK, if type aliases are substituted
181209 pub trait Tr2 : PrivUseAliasTr < PrivAlias > { } //~ WARN private type in public interface
210+ //~^ WARNING hard error
182211
183212 impl PrivAlias {
184213 pub fn f ( arg : Priv ) { } //~ WARN private type in public interface
214+ //~^ WARNING hard error
185215 }
186216 // This doesn't even parse
187217 // impl <Priv as PrivTr>::AssocAlias {
188218 // pub fn f(arg: Priv) {} // WARN private type in public interface
189219 // }
190220 impl PrivUseAliasTr for PrivUseAlias {
191221 type Check = Priv ; //~ WARN private type in public interface
222+ //~^ WARNING hard error
192223 }
193224 impl PrivUseAliasTr for PrivAlias {
194225 type Check = Priv ; //~ WARN private type in public interface
226+ //~^ WARNING hard error
195227 }
196228 impl PrivUseAliasTr for <Priv as PrivTr >:: AssocAlias {
197229 type Check = Priv ; //~ WARN private type in public interface
230+ //~^ WARNING hard error
198231 }
199232}
200233
@@ -217,8 +250,11 @@ mod aliases_priv {
217250 impl PrivTr for Priv { }
218251
219252 pub trait Tr1 : PrivUseAliasTr { } //~ WARN private trait in public interface
253+ //~^ WARNING hard error
220254 pub trait Tr2 : PrivUseAliasTr < PrivAlias > { } //~ WARN private trait in public interface
221255 //~^ WARN private type in public interface
256+ //~| WARNING hard error
257+ //~| WARNING hard error
222258
223259 impl PrivUseAlias {
224260 pub fn f ( arg : Priv ) { } // OK
0 commit comments