about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2015-12-18 20:57:36 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2015-12-18 20:57:36 +0300
commit785cbe02008985f98fee2a013f2d308207ca596f (patch)
treed882129e566baa533034bc435cca7d40f46567f7 /src/test
parentcda7244a2a8f16549a0ed8db49ff721b5f7d78e4 (diff)
downloadrust-785cbe02008985f98fee2a013f2d308207ca596f.tar.gz
rust-785cbe02008985f98fee2a013f2d308207ca596f.zip
Do not substitute type aliases during error reporting
Type aliases are still substituted when determining impl publicity
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/private-in-public-warn.rs7
-rw-r--r--src/test/compile-fail/private-in-public.rs4
2 files changed, 6 insertions, 5 deletions
diff --git a/src/test/compile-fail/private-in-public-warn.rs b/src/test/compile-fail/private-in-public-warn.rs
index 8128fde4de5..2d1de3ca282 100644
--- a/src/test/compile-fail/private-in-public-warn.rs
+++ b/src/test/compile-fail/private-in-public-warn.rs
@@ -175,10 +175,10 @@ mod aliases_pub {
     impl PrivTr for Priv {}
 
     pub fn f1(arg: PrivUseAlias) {} // OK
-    pub fn f2(arg: PrivAlias) {} // OK
 
     pub trait Tr1: PrivUseAliasTr {} // OK
-    pub trait Tr2: PrivUseAliasTr<PrivAlias> {} // OK
+    // This should be OK, if type aliases are substituted
+    pub trait Tr2: PrivUseAliasTr<PrivAlias> {} //~ WARN private type in public interface
 
     impl PrivAlias {
         pub fn f(arg: Priv) {} //~ WARN private type in public interface
@@ -211,7 +211,6 @@ mod aliases_priv {
     use self::Priv1 as PrivUseAlias;
     use self::PrivTr1 as PrivUseAliasTr;
     type PrivAlias = Priv2;
-    //~^ WARN private type in public interface
     trait PrivTr {
         type AssocAlias = Priv3;
     }
@@ -246,8 +245,6 @@ mod aliases_params {
     struct Priv;
     type PrivAliasGeneric<T = Priv> = T;
     type Result<T> = ::std::result::Result<T, Priv>;
-
-    pub fn f1(arg: PrivAliasGeneric<u8>) {} // OK, not an error
 }
 
 #[rustc_error]
diff --git a/src/test/compile-fail/private-in-public.rs b/src/test/compile-fail/private-in-public.rs
index 7d4dcfd3145..be22a2ef6a7 100644
--- a/src/test/compile-fail/private-in-public.rs
+++ b/src/test/compile-fail/private-in-public.rs
@@ -105,6 +105,8 @@ mod aliases_pub {
     }
     impl PrivTr for Priv {}
 
+    // This should be OK, if type aliases are substituted
+    pub fn f2(arg: PrivAlias) {} //~ ERROR private type in public interface
     // This should be OK, but associated type aliases are not substituted yet
     pub fn f3(arg: <Priv as PrivTr>::AssocAlias) {} //~ ERROR private type in public interface
 
@@ -141,6 +143,8 @@ mod aliases_params {
     type PrivAliasGeneric<T = Priv> = T;
     type Result<T> = ::std::result::Result<T, Priv>;
 
+    // This should be OK, if type aliases are substituted
+    pub fn f1(arg: PrivAliasGeneric<u8>) {} //~ ERROR private type in public interface
     pub fn f2(arg: PrivAliasGeneric) {} //~ ERROR private type in public interface
     pub fn f3(arg: Result<u8>) {} //~ ERROR private type in public interface
 }