From 7098cfda2e1476cb502511ab8a55c6e787035237 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 12 Jan 2016 13:49:43 -0500 Subject: [PATCH] Fix test cases accordingly --- .../compile-fail/empty-struct-unit-pat.rs | 2 ++ .../compile-fail/private-in-public-warn.rs | 36 +++++++++++++++++++ .../compile-fail/private-variant-reexport.rs | 4 +++ .../type-parameter-invalid-lint.rs | 2 +- 4 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/test/compile-fail/empty-struct-unit-pat.rs b/src/test/compile-fail/empty-struct-unit-pat.rs index 7e13f539bb04..d90e9c40ea42 100644 --- a/src/test/compile-fail/empty-struct-unit-pat.rs +++ b/src/test/compile-fail/empty-struct-unit-pat.rs @@ -32,6 +32,7 @@ fn main() { //~ ERROR: compilation successful // } match e1 { Empty1(..) => () //~ WARN `Empty1` does not name a tuple variant or a tuple struct + //~^ WARN HARD ERROR } // Rejected by parser as yet // match e2 { @@ -39,5 +40,6 @@ fn main() { //~ ERROR: compilation successful // } match e2 { E::Empty2(..) => () //~ WARN `E::Empty2` does not name a tuple variant or a tuple struct + //~^ WARN HARD ERROR } } diff --git a/src/test/compile-fail/private-in-public-warn.rs b/src/test/compile-fail/private-in-public-warn.rs index 2d1de3ca2823..3af6bad1d616 100644 --- a/src/test/compile-fail/private-in-public-warn.rs +++ b/src/test/compile-fail/private-in-public-warn.rs @@ -26,23 +26,34 @@ mod types { } pub type Alias = Priv; //~ WARN private type in public interface + //~^ WARNING HARD ERROR pub enum E { V1(Priv), //~ WARN private type in public interface + //~^ WARNING HARD ERROR V2 { field: Priv }, //~ WARN private type in public interface + //~^ WARNING HARD ERROR } pub trait Tr { const C: Priv = Priv; //~ WARN private type in public interface + //~^ WARNING HARD ERROR type Alias = Priv; //~ WARN private type in public interface + //~^ WARNING HARD ERROR fn f1(arg: Priv) {} //~ WARN private type in public interface + //~^ WARNING HARD ERROR fn f2() -> Priv { panic!() } //~ WARN private type in public interface + //~^ WARNING HARD ERROR } extern { pub static ES: Priv; //~ WARN private type in public interface + //~^ WARNING HARD ERROR pub fn ef1(arg: Priv); //~ WARN private type in public interface + //~^ WARNING HARD ERROR pub fn ef2() -> Priv; //~ WARN private type in public interface + //~^ WARNING HARD ERROR } impl PubTr for Pub { type Alias = Priv; //~ WARN private type in public interface + //~^ WARNING HARD ERROR } } @@ -53,14 +64,21 @@ mod traits { pub type Alias = T; //~ WARN private trait in public interface //~^ WARN trait bounds are not (yet) enforced in type definitions + //~| WARNING HARD ERROR pub trait Tr1: PrivTr {} //~ WARN private trait in public interface + //~^ WARNING HARD ERROR pub trait Tr2 {} //~ WARN private trait in public interface + //~^ WARNING HARD ERROR pub trait Tr3 { type Alias: PrivTr; //~ WARN private trait in public interface + //~^ WARNING HARD ERROR fn f(arg: T) {} //~ WARN private trait in public interface + //~^ WARNING HARD ERROR } impl Pub {} //~ WARN private trait in public interface + //~^ WARNING HARD ERROR impl PubTr for Pub {} //~ WARN private trait in public interface + //~^ WARNING HARD ERROR } mod traits_where { @@ -69,12 +87,17 @@ mod traits_where { pub trait PubTr {} pub type Alias where T: PrivTr = T; //~ WARN private trait in public interface + //~^ WARNING HARD ERROR pub trait Tr2 where T: PrivTr {} //~ WARN private trait in public interface + //~^ WARNING HARD ERROR pub trait Tr3 { fn f(arg: T) where T: PrivTr {} //~ WARN private trait in public interface + //~^ WARNING HARD ERROR } impl Pub where T: PrivTr {} //~ WARN private trait in public interface + //~^ WARNING HARD ERROR impl PubTr for Pub where T: PrivTr {} //~ WARN private trait in public interface + //~^ WARNING HARD ERROR } mod generics { @@ -84,9 +107,13 @@ mod generics { pub trait PubTr {} pub trait Tr1: PrivTr {} //~ WARN private trait in public interface + //~^ WARNING HARD ERROR pub trait Tr2: PubTr {} //~ WARN private type in public interface + //~^ WARNING HARD ERROR pub trait Tr3: PubTr<[Priv; 1]> {} //~ WARN private type in public interface + //~^ WARNING HARD ERROR pub trait Tr4: PubTr> {} //~ WARN private type in public interface + //~^ WARNING HARD ERROR } mod impls { @@ -113,6 +140,7 @@ mod impls { } impl PubTr for Pub { type Alias = Priv; //~ WARN private type in public interface + //~^ WARNING HARD ERROR } } @@ -179,9 +207,11 @@ mod aliases_pub { pub trait Tr1: PrivUseAliasTr {} // OK // This should be OK, if type aliases are substituted pub trait Tr2: PrivUseAliasTr {} //~ WARN private type in public interface + //~^ WARNING HARD ERROR impl PrivAlias { pub fn f(arg: Priv) {} //~ WARN private type in public interface + //~^ WARNING HARD ERROR } // This doesn't even parse // impl ::AssocAlias { @@ -189,12 +219,15 @@ mod aliases_pub { // } impl PrivUseAliasTr for PrivUseAlias { type Check = Priv; //~ WARN private type in public interface + //~^ WARNING HARD ERROR } impl PrivUseAliasTr for PrivAlias { type Check = Priv; //~ WARN private type in public interface + //~^ WARNING HARD ERROR } impl PrivUseAliasTr for ::AssocAlias { type Check = Priv; //~ WARN private type in public interface + //~^ WARNING HARD ERROR } } @@ -217,8 +250,11 @@ mod aliases_priv { impl PrivTr for Priv {} pub trait Tr1: PrivUseAliasTr {} //~ WARN private trait in public interface + //~^ WARNING HARD ERROR pub trait Tr2: PrivUseAliasTr {} //~ WARN private trait in public interface //~^ WARN private type in public interface + //~| WARNING HARD ERROR + //~| WARNING HARD ERROR impl PrivUseAlias { pub fn f(arg: Priv) {} // OK diff --git a/src/test/compile-fail/private-variant-reexport.rs b/src/test/compile-fail/private-variant-reexport.rs index 39698fa593a2..0e8f92de6589 100644 --- a/src/test/compile-fail/private-variant-reexport.rs +++ b/src/test/compile-fail/private-variant-reexport.rs @@ -13,18 +13,22 @@ mod m1 { pub use ::E::V; //~ WARN variant `V` is private, and cannot be reexported + //~^ WARNING HARD ERROR } mod m2 { pub use ::E::{V}; //~ WARN variant `V` is private, and cannot be reexported + //~^ WARNING HARD ERROR } mod m3 { pub use ::E::V::{self}; //~ WARN variant `V` is private, and cannot be reexported + //~^ WARNING HARD ERROR } mod m4 { pub use ::E::*; //~ WARN variant `V` is private, and cannot be reexported + //~^ WARNING HARD ERROR } enum E { V } diff --git a/src/test/compile-fail/type-parameter-invalid-lint.rs b/src/test/compile-fail/type-parameter-invalid-lint.rs index a3ecbfa84f0a..af97156a7713 100644 --- a/src/test/compile-fail/type-parameter-invalid-lint.rs +++ b/src/test/compile-fail/type-parameter-invalid-lint.rs @@ -13,5 +13,5 @@ fn avg(_: T) {} //~^ ERROR defaults for type parameters are only allowed -//~| NOTE HARD ERROR +//~| WARNING HARD ERROR fn main() {}