summaryrefslogtreecommitdiffstats
path: root/tests/ui/stability-attribute/auxiliary/default_body.rs
blob: 2f315eb1bc8fcad821348fd64bac25cb9c23b61a (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
#![crate_type = "lib"]
#![feature(staged_api, rustc_attrs)]
#![stable(feature = "stable_feature", since = "1.0.0")]

#[stable(feature = "stable_feature", since = "1.0.0")]
pub trait JustTrait {
    #[stable(feature = "stable_feature", since = "1.0.0")]
    #[rustc_default_body_unstable(feature = "constant_default_body", issue = "none")]
    const CONSTANT: usize = 0;

    #[rustc_default_body_unstable(feature = "fun_default_body", issue = "none")]
    #[stable(feature = "stable_feature", since = "1.0.0")]
    fn fun() {}

    #[rustc_default_body_unstable(feature = "fun_default_body", issue = "none", reason = "reason")]
    #[stable(feature = "stable_feature", since = "1.0.0")]
    fn fun2() {}
}

#[rustc_must_implement_one_of(eq, neq)]
#[stable(feature = "stable_feature", since = "1.0.0")]
pub trait Equal {
    #[rustc_default_body_unstable(feature = "eq_default_body", issue = "none")]
    #[stable(feature = "stable_feature", since = "1.0.0")]
    fn eq(&self, other: &Self) -> bool {
        !self.neq(other)
    }

    #[stable(feature = "stable_feature", since = "1.0.0")]
    fn neq(&self, other: &Self) -> bool {
        !self.eq(other)
    }
}