blob: 35e964eacec4fc3e9fb1b190ea2e8756984cce77 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
// Demonstrates and records a theoretical regressions / breaking changes caused by the
// introduction of const trait bounds.
// Setting the edition to 2018 since we don't regress `demo! { dyn const }` in Rust <2018.
//@ edition:2018
trait Trait {}
macro_rules! demo {
(impl $c:ident Trait) => { impl $c Trait {} };
//~^ ERROR inherent
//~| WARN trait objects without an explicit `dyn` are deprecated
//~| WARN this is accepted in the current edition
(dyn $c:ident Trait) => { dyn $c Trait {} }; //~ ERROR macro expansion
}
demo! { impl const Trait }
//~^ ERROR const trait impls are experimental
demo! { dyn const Trait }
fn main() {}
|