diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2014-05-25 14:43:30 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2014-05-27 09:04:08 -0700 |
| commit | 49a65815f17d9d3ee1a8ea323aaaf96e1beb265a (patch) | |
| tree | 92ef76defab28fe3ec9c421da22f7306f21c70ba /src/test/auxiliary | |
| parent | 1cf1527b91db3c605e44fe9b90fc46ecf1d04c4f (diff) | |
| download | rust-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.rs | 34 | ||||
| -rw-r--r-- | src/test/auxiliary/issue-14422.rs | 34 |
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"); } + } + } +} |
