mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 17:24:06 +00:00
60c6dc07de
Something similar was previously removed as a part of #104602, but after this PR all table changes should also be "locally correct" after every update.
78 lines
3.6 KiB
Rust
78 lines
3.6 KiB
Rust
#![rustc_effective_visibility] //~ ERROR Direct: pub, Reexported: pub, Reachable: pub, ReachableThroughImplTrait: pub
|
|
#![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 not in the table
|
|
|
|
#[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
|
|
//~| 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
|
|
//~| 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 { //~ ERROR not in the table
|
|
() => {};
|
|
}
|
|
|
|
#[macro_export]
|
|
#[rustc_effective_visibility]
|
|
macro_rules! public_macro { //~ ERROR Direct: pub(self), 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
|
|
|
|
fn main() {}
|