about summary refs log tree commit diff
path: root/src/test/auxiliary
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2014-05-25 14:43:30 -0700
committerAlex Crichton <alex@alexcrichton.com>2014-05-27 09:04:08 -0700
commit49a65815f17d9d3ee1a8ea323aaaf96e1beb265a (patch)
tree92ef76defab28fe3ec9c421da22f7306f21c70ba /src/test/auxiliary
parent1cf1527b91db3c605e44fe9b90fc46ecf1d04c4f (diff)
downloadrust-49a65815f17d9d3ee1a8ea323aaaf96e1beb265a.tar.gz
rust-49a65815f17d9d3ee1a8ea323aaaf96e1beb265a.zip
rustc: Account for typedefs in privacy
This ensures that a public typedef to a private item is ensured to be public in
terms of linkage. This affects both the visibility of the library's symbols as
well as other lints based on privacy (dead_code for example).

Closes #14421
Closes #14422
Diffstat (limited to 'src/test/auxiliary')
-rw-r--r--src/test/auxiliary/issue-14421.rs34
-rw-r--r--src/test/auxiliary/issue-14422.rs34
2 files changed, 68 insertions, 0 deletions
diff --git a/src/test/auxiliary/issue-14421.rs b/src/test/auxiliary/issue-14421.rs
new file mode 100644
index 00000000000..7c69cba179c
--- /dev/null
+++ b/src/test/auxiliary/issue-14421.rs
@@ -0,0 +1,34 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![crate_type="lib"]
+#![deny(warnings)]
+
+pub use src::aliases::B;
+pub use src::hidden_core::make;
+
+mod src {
+    pub mod aliases {
+        use super::hidden_core::A;
+        pub type B = A<f32>;
+    }
+
+    pub mod hidden_core {
+        use super::aliases::B;
+
+        pub struct A<T>;
+
+        pub fn make() -> B { A }
+
+        impl<T> A<T> {
+            pub fn foo(&mut self) { println!("called foo"); }
+        }
+    }
+}
diff --git a/src/test/auxiliary/issue-14422.rs b/src/test/auxiliary/issue-14422.rs
new file mode 100644
index 00000000000..04e1d993011
--- /dev/null
+++ b/src/test/auxiliary/issue-14422.rs
@@ -0,0 +1,34 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![crate_type="lib"]
+#![deny(warnings)]
+
+pub use src::aliases::B;
+pub use src::hidden_core::make;
+
+mod src {
+    pub mod aliases {
+        use super::hidden_core::A;
+        pub type B = A;
+    }
+
+    pub mod hidden_core {
+        use super::aliases::B;
+
+        pub struct A;
+
+        pub fn make() -> B { A }
+
+        impl A {
+            pub fn foo(&mut self) { println!("called foo"); }
+        }
+    }
+}