提交 7098cfda 编写于 作者: N Niko Matsakis

Fix test cases accordingly

上级 25937942
...@@ -32,6 +32,7 @@ fn main() { //~ ERROR: compilation successful ...@@ -32,6 +32,7 @@ fn main() { //~ ERROR: compilation successful
// } // }
match e1 { match e1 {
Empty1(..) => () //~ WARN `Empty1` does not name a tuple variant or a tuple struct Empty1(..) => () //~ WARN `Empty1` does not name a tuple variant or a tuple struct
//~^ WARN HARD ERROR
} }
// Rejected by parser as yet // Rejected by parser as yet
// match e2 { // match e2 {
...@@ -39,5 +40,6 @@ fn main() { //~ ERROR: compilation successful ...@@ -39,5 +40,6 @@ fn main() { //~ ERROR: compilation successful
// } // }
match e2 { match e2 {
E::Empty2(..) => () //~ WARN `E::Empty2` does not name a tuple variant or a tuple struct E::Empty2(..) => () //~ WARN `E::Empty2` does not name a tuple variant or a tuple struct
//~^ WARN HARD ERROR
} }
} }
...@@ -26,23 +26,34 @@ pub trait PubTr { ...@@ -26,23 +26,34 @@ pub trait PubTr {
} }
pub type Alias = Priv; //~ WARN private type in public interface pub type Alias = Priv; //~ WARN private type in public interface
//~^ WARNING HARD ERROR
pub enum E { pub enum E {
V1(Priv), //~ WARN private type in public interface V1(Priv), //~ WARN private type in public interface
//~^ WARNING HARD ERROR
V2 { field: Priv }, //~ WARN private type in public interface V2 { field: Priv }, //~ WARN private type in public interface
//~^ WARNING HARD ERROR
} }
pub trait Tr { pub trait Tr {
const C: Priv = Priv; //~ WARN private type in public interface const C: Priv = Priv; //~ WARN private type in public interface
//~^ WARNING HARD ERROR
type Alias = Priv; //~ WARN private type in public interface type Alias = Priv; //~ WARN private type in public interface
//~^ WARNING HARD ERROR
fn f1(arg: Priv) {} //~ WARN private type in public interface fn f1(arg: Priv) {} //~ WARN private type in public interface
//~^ WARNING HARD ERROR
fn f2() -> Priv { panic!() } //~ WARN private type in public interface fn f2() -> Priv { panic!() } //~ WARN private type in public interface
//~^ WARNING HARD ERROR
} }
extern { extern {
pub static ES: Priv; //~ WARN private type in public interface pub static ES: Priv; //~ WARN private type in public interface
//~^ WARNING HARD ERROR
pub fn ef1(arg: Priv); //~ WARN private type in public interface pub fn ef1(arg: Priv); //~ WARN private type in public interface
//~^ WARNING HARD ERROR
pub fn ef2() -> Priv; //~ WARN private type in public interface pub fn ef2() -> Priv; //~ WARN private type in public interface
//~^ WARNING HARD ERROR
} }
impl PubTr for Pub { impl PubTr for Pub {
type Alias = Priv; //~ WARN private type in public interface type Alias = Priv; //~ WARN private type in public interface
//~^ WARNING HARD ERROR
} }
} }
...@@ -53,14 +64,21 @@ pub trait PubTr {} ...@@ -53,14 +64,21 @@ pub trait PubTr {}
pub type Alias<T: PrivTr> = T; //~ WARN private trait in public interface pub type Alias<T: PrivTr> = T; //~ WARN private trait in public interface
//~^ WARN trait bounds are not (yet) enforced in type definitions //~^ WARN trait bounds are not (yet) enforced in type definitions
//~| WARNING HARD ERROR
pub trait Tr1: PrivTr {} //~ WARN private trait in public interface pub trait Tr1: PrivTr {} //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
pub trait Tr2<T: PrivTr> {} //~ WARN private trait in public interface pub trait Tr2<T: PrivTr> {} //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
pub trait Tr3 { pub trait Tr3 {
type Alias: PrivTr; //~ WARN private trait in public interface type Alias: PrivTr; //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
fn f<T: PrivTr>(arg: T) {} //~ WARN private trait in public interface fn f<T: PrivTr>(arg: T) {} //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
} }
impl<T: PrivTr> Pub<T> {} //~ WARN private trait in public interface impl<T: PrivTr> Pub<T> {} //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
impl<T: PrivTr> PubTr for Pub<T> {} //~ WARN private trait in public interface impl<T: PrivTr> PubTr for Pub<T> {} //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
} }
mod traits_where { mod traits_where {
...@@ -69,12 +87,17 @@ trait PrivTr {} ...@@ -69,12 +87,17 @@ trait PrivTr {}
pub trait PubTr {} pub trait PubTr {}
pub type Alias<T> where T: PrivTr = T; //~ WARN private trait in public interface pub type Alias<T> where T: PrivTr = T; //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
pub trait Tr2<T> where T: PrivTr {} //~ WARN private trait in public interface pub trait Tr2<T> where T: PrivTr {} //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
pub trait Tr3 { pub trait Tr3 {
fn f<T>(arg: T) where T: PrivTr {} //~ WARN private trait in public interface fn f<T>(arg: T) where T: PrivTr {} //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
} }
impl<T> Pub<T> where T: PrivTr {} //~ WARN private trait in public interface impl<T> Pub<T> where T: PrivTr {} //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
impl<T> PubTr for Pub<T> where T: PrivTr {} //~ WARN private trait in public interface impl<T> PubTr for Pub<T> where T: PrivTr {} //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
} }
mod generics { mod generics {
...@@ -84,9 +107,13 @@ trait PrivTr<T> {} ...@@ -84,9 +107,13 @@ trait PrivTr<T> {}
pub trait PubTr<T> {} pub trait PubTr<T> {}
pub trait Tr1: PrivTr<Pub> {} //~ WARN private trait in public interface pub trait Tr1: PrivTr<Pub> {} //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
pub trait Tr2: PubTr<Priv> {} //~ WARN private type in public interface pub trait Tr2: PubTr<Priv> {} //~ WARN private type in public interface
//~^ WARNING HARD ERROR
pub trait Tr3: PubTr<[Priv; 1]> {} //~ WARN private type in public interface pub trait Tr3: PubTr<[Priv; 1]> {} //~ WARN private type in public interface
//~^ WARNING HARD ERROR
pub trait Tr4: PubTr<Pub<Priv>> {} //~ WARN private type in public interface pub trait Tr4: PubTr<Pub<Priv>> {} //~ WARN private type in public interface
//~^ WARNING HARD ERROR
} }
mod impls { mod impls {
...@@ -113,6 +140,7 @@ impl PrivTr for Pub { ...@@ -113,6 +140,7 @@ impl PrivTr for Pub {
} }
impl PubTr for Pub { impl PubTr for Pub {
type Alias = Priv; //~ WARN private type in public interface type Alias = Priv; //~ WARN private type in public interface
//~^ WARNING HARD ERROR
} }
} }
...@@ -179,9 +207,11 @@ pub fn f1(arg: PrivUseAlias) {} // OK ...@@ -179,9 +207,11 @@ pub fn f1(arg: PrivUseAlias) {} // OK
pub trait Tr1: PrivUseAliasTr {} // OK pub trait Tr1: PrivUseAliasTr {} // OK
// This should be OK, if type aliases are substituted // This should be OK, if type aliases are substituted
pub trait Tr2: PrivUseAliasTr<PrivAlias> {} //~ WARN private type in public interface pub trait Tr2: PrivUseAliasTr<PrivAlias> {} //~ WARN private type in public interface
//~^ WARNING HARD ERROR
impl PrivAlias { impl PrivAlias {
pub fn f(arg: Priv) {} //~ WARN private type in public interface pub fn f(arg: Priv) {} //~ WARN private type in public interface
//~^ WARNING HARD ERROR
} }
// This doesn't even parse // This doesn't even parse
// impl <Priv as PrivTr>::AssocAlias { // impl <Priv as PrivTr>::AssocAlias {
...@@ -189,12 +219,15 @@ pub fn f(arg: Priv) {} //~ WARN private type in public interface ...@@ -189,12 +219,15 @@ pub fn f(arg: Priv) {} //~ WARN private type in public interface
// } // }
impl PrivUseAliasTr for PrivUseAlias { impl PrivUseAliasTr for PrivUseAlias {
type Check = Priv; //~ WARN private type in public interface type Check = Priv; //~ WARN private type in public interface
//~^ WARNING HARD ERROR
} }
impl PrivUseAliasTr for PrivAlias { impl PrivUseAliasTr for PrivAlias {
type Check = Priv; //~ WARN private type in public interface type Check = Priv; //~ WARN private type in public interface
//~^ WARNING HARD ERROR
} }
impl PrivUseAliasTr for <Priv as PrivTr>::AssocAlias { impl PrivUseAliasTr for <Priv as PrivTr>::AssocAlias {
type Check = Priv; //~ WARN private type in public interface type Check = Priv; //~ WARN private type in public interface
//~^ WARNING HARD ERROR
} }
} }
...@@ -217,8 +250,11 @@ trait PrivTr { ...@@ -217,8 +250,11 @@ trait PrivTr {
impl PrivTr for Priv {} impl PrivTr for Priv {}
pub trait Tr1: PrivUseAliasTr {} //~ WARN private trait in public interface pub trait Tr1: PrivUseAliasTr {} //~ WARN private trait in public interface
//~^ WARNING HARD ERROR
pub trait Tr2: PrivUseAliasTr<PrivAlias> {} //~ WARN private trait in public interface pub trait Tr2: PrivUseAliasTr<PrivAlias> {} //~ WARN private trait in public interface
//~^ WARN private type in public interface //~^ WARN private type in public interface
//~| WARNING HARD ERROR
//~| WARNING HARD ERROR
impl PrivUseAlias { impl PrivUseAlias {
pub fn f(arg: Priv) {} // OK pub fn f(arg: Priv) {} // OK
......
...@@ -13,18 +13,22 @@ ...@@ -13,18 +13,22 @@
mod m1 { mod m1 {
pub use ::E::V; //~ WARN variant `V` is private, and cannot be reexported pub use ::E::V; //~ WARN variant `V` is private, and cannot be reexported
//~^ WARNING HARD ERROR
} }
mod m2 { mod m2 {
pub use ::E::{V}; //~ WARN variant `V` is private, and cannot be reexported pub use ::E::{V}; //~ WARN variant `V` is private, and cannot be reexported
//~^ WARNING HARD ERROR
} }
mod m3 { mod m3 {
pub use ::E::V::{self}; //~ WARN variant `V` is private, and cannot be reexported pub use ::E::V::{self}; //~ WARN variant `V` is private, and cannot be reexported
//~^ WARNING HARD ERROR
} }
mod m4 { mod m4 {
pub use ::E::*; //~ WARN variant `V` is private, and cannot be reexported pub use ::E::*; //~ WARN variant `V` is private, and cannot be reexported
//~^ WARNING HARD ERROR
} }
enum E { V } enum E { V }
......
...@@ -13,5 +13,5 @@ ...@@ -13,5 +13,5 @@
fn avg<T=i32>(_: T) {} fn avg<T=i32>(_: T) {}
//~^ ERROR defaults for type parameters are only allowed //~^ ERROR defaults for type parameters are only allowed
//~| NOTE HARD ERROR //~| WARNING HARD ERROR
fn main() {} fn main() {}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册