@@ -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