diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2024-03-15 14:21:03 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2024-05-15 02:32:59 +0300 |
| commit | c30b41012d474586d407392a6b154e7f19c38b2c (patch) | |
| tree | adf34f62f1c929390851853093799427734a4569 /tests/ui/delegation/macro-inside-list.rs | |
| parent | 8387315ab3c26a57a1f53a90f188f0bc88514bca (diff) | |
| download | rust-c30b41012d474586d407392a6b154e7f19c38b2c.tar.gz rust-c30b41012d474586d407392a6b154e7f19c38b2c.zip | |
delegation: Implement list delegation
```rust
reuse prefix::{a, b, c}
```
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(); +} |
