]> git.proxmox.com Git - rustc.git/blame - src/test/ui-fulldeps/macro-crate-multi-decorator.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / src / test / ui-fulldeps / macro-crate-multi-decorator.rs
CommitLineData
60c5eb7d 1// check-pass
532ac7d7 2// aux-build:macro-crate-test.rs
d9579d0f
AL
3// ignore-stage1
4
9fa01778 5#![feature(rustc_attrs)]
d9579d0f
AL
6
7#[macro_use]
d9579d0f
AL
8extern crate macro_crate_test;
9
10// The duplicate macro will create a copy of the item with the given identifier.
11
8faf50e0 12#[rustc_duplicate(MyCopy)]
d9579d0f
AL
13struct MyStruct {
14 number: i32
15}
16
17trait TestTrait {
8faf50e0 18 #[rustc_duplicate(TestType2)]
d9579d0f
AL
19 type TestType;
20
8faf50e0 21 #[rustc_duplicate(required_fn2)]
d9579d0f
AL
22 fn required_fn(&self);
23
8faf50e0 24 #[rustc_duplicate(provided_fn2)]
d9579d0f
AL
25 fn provided_fn(&self) { }
26}
27
28impl TestTrait for MyStruct {
8faf50e0 29 #[rustc_duplicate(TestType2)]
d9579d0f
AL
30 type TestType = f64;
31
8faf50e0 32 #[rustc_duplicate(required_fn2)]
d9579d0f
AL
33 fn required_fn(&self) { }
34}
35
36fn main() {
37 let s = MyStruct { number: 42 };
38 s.required_fn();
39 s.required_fn2();
40 s.provided_fn();
41 s.provided_fn2();
42
43 let s = MyCopy { number: 42 };
44}