diff options
Diffstat (limited to 'tests/ui/delegation/macro-inside-list.rs')
| -rw-r--r-- | tests/ui/delegation/macro-inside-list.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/ui/delegation/macro-inside-list.rs b/tests/ui/delegation/macro-inside-list.rs new file mode 100644 index 00000000000..16c74d396ef --- /dev/null +++ b/tests/ui/delegation/macro-inside-list.rs @@ -0,0 +1,26 @@ +//@ check-pass + +#![feature(fn_delegation)] +#![allow(incomplete_features)] + +trait Trait { + fn foo(&self) -> u8 { 0 } + fn bar(&self) -> u8 { 1 } +} + +impl Trait for u8 {} + +struct S(u8); + +// Macro expansion works inside delegation items. +macro_rules! u8 { () => { u8 } } +macro_rules! self_0 { () => { &self.0 } } +impl Trait for S { + reuse <u8!() as Trait>::{foo, bar} { self_0!() } +} + +fn main() { + let s = S(2); + s.foo(); + s.bar(); +} |
