mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 15:01:51 +00:00
76 lines
3.6 KiB
Rust
76 lines
3.6 KiB
Rust
|
#![feature(rustc_attrs)]
|
||
|
|
||
|
#[rustc_effective_visibility]
|
||
|
mod outer { //~ ERROR Direct: pub(crate), Reexported: pub(crate), Reachable: pub(crate), ReachableThroughImplTrait: pub(crate)
|
||
|
#[rustc_effective_visibility]
|
||
|
pub mod inner1 { //~ ERROR Direct: pub(crate), Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
|
||
|
#[rustc_effective_visibility]
|
||
|
extern "C" {} //~ ERROR Direct: pub(crate), Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
|
||
|
#[rustc_effective_visibility]
|
||
|
pub trait PubTrait { //~ ERROR Direct: pub(crate), Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
#[rustc_effective_visibility]
|
||
|
const A: i32; //~ ERROR Direct: pub(crate), Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
#[rustc_effective_visibility]
|
||
|
type B; //~ ERROR Direct: pub(crate), Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
}
|
||
|
|
||
|
#[rustc_effective_visibility]
|
||
|
struct PrivStruct; //~ ERROR not in the table
|
||
|
|
||
|
#[rustc_effective_visibility]
|
||
|
pub union PubUnion { //~ ERROR Direct: pub(crate), Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
#[rustc_effective_visibility]
|
||
|
a: u8, //~ ERROR not in the table
|
||
|
#[rustc_effective_visibility]
|
||
|
pub b: u8, //~ ERROR Direct: pub(crate), Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
}
|
||
|
|
||
|
#[rustc_effective_visibility]
|
||
|
pub enum Enum { //~ ERROR Direct: pub(crate), Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
#[rustc_effective_visibility]
|
||
|
A( //~ ERROR Direct: pub(crate), Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
#[rustc_effective_visibility]
|
||
|
PubUnion, //~ ERROR Direct: pub(crate), Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#[rustc_effective_visibility]
|
||
|
macro_rules! none_macro { //~ Direct: pub(crate), Reexported: pub(crate), Reachable: pub(crate), ReachableThroughImplTrait: pub(crate)
|
||
|
() => {};
|
||
|
}
|
||
|
|
||
|
#[macro_export]
|
||
|
#[rustc_effective_visibility]
|
||
|
macro_rules! public_macro { //~ Direct: pub, Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
() => {};
|
||
|
}
|
||
|
|
||
|
#[rustc_effective_visibility]
|
||
|
pub struct ReachableStruct { //~ ERROR Direct: pub(crate), Reexported: pub(crate), Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
#[rustc_effective_visibility]
|
||
|
pub a: u8, //~ ERROR Direct: pub(crate), Reexported: pub(crate), Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#[rustc_effective_visibility]
|
||
|
pub use outer::inner1; //~ ERROR Direct: pub, Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
|
||
|
pub fn foo() -> outer::ReachableStruct { outer::ReachableStruct {a: 0} }
|
||
|
|
||
|
mod half_public_import {
|
||
|
#[rustc_effective_visibility]
|
||
|
pub type HalfPublicImport = u8; //~ ERROR Direct: pub(crate), Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
#[rustc_effective_visibility]
|
||
|
#[allow(non_upper_case_globals)]
|
||
|
pub(crate) const HalfPublicImport: u8 = 0; //~ ERROR Direct: pub(crate), Reexported: pub(crate), Reachable: pub(crate), ReachableThroughImplTrait: pub(crate)
|
||
|
}
|
||
|
|
||
|
#[rustc_effective_visibility]
|
||
|
pub use half_public_import::HalfPublicImport; //~ ERROR Direct: pub, Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
//~^ ERROR Direct: pub, Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
||
|
|
||
|
fn main() {}
|