summaryrefslogtreecommitdiffstats
path: root/src/test/ui/privacy/auxiliary/private-inferred-type.rs
blob: 7ac913f5b5bd53e38be6fafbc82dfe37ab17e1a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#![feature(decl_macro)]

fn priv_fn() {}
static PRIV_STATIC: u8 = 0;
enum PrivEnum { Variant }
pub enum PubEnum { Variant }
trait PrivTrait { fn method() {} }
impl PrivTrait for u8 {}
pub trait PubTrait { fn method() {} }
impl PubTrait for u8 {}
struct PrivTupleStruct(u8);
pub struct PubTupleStruct(u8);
impl PubTupleStruct { fn method() {} }

struct Priv;
pub type Alias = Priv;
pub struct Pub<T = Alias>(pub T);

impl Pub<Priv> {
    pub fn static_method() {}
}
impl Pub<u8> {
    fn priv_method(&self) {}
}

pub macro m() {
    priv_fn;
    PRIV_STATIC;
    PrivEnum::Variant;
    PubEnum::Variant;
    <u8 as PrivTrait>::method;
    <u8 as PubTrait>::method;
    PrivTupleStruct;
    PubTupleStruct;
    Pub(0u8).priv_method();
}