]>
Commit | Line | Data |
---|---|---|
487cf647 FG |
1 | // check-pass |
2 | ||
3 | #![feature(dyn_star)] | |
4 | #![allow(incomplete_features)] | |
5 | ||
6 | trait AddOne { | |
7 | fn add1(&mut self) -> usize; | |
8 | } | |
9 | ||
10 | impl AddOne for usize { | |
11 | fn add1(&mut self) -> usize { | |
12 | *self += 1; | |
13 | *self | |
14 | } | |
15 | } | |
16 | ||
17 | impl AddOne for &mut usize { | |
18 | fn add1(&mut self) -> usize { | |
19 | (*self).add1() | |
20 | } | |
21 | } | |
22 | ||
23 | fn add_one(mut i: dyn* AddOne + '_) -> usize { | |
24 | i.add1() | |
25 | } | |
26 | ||
27 | fn main() { | |
28 | let mut x = 42usize; | |
29 | let y = &mut x as (dyn* AddOne + '_); | |
30 | ||
31 | println!("{}", add_one(y)); | |
32 | } |