blob: 35e964eacec4fc3e9fb1b190ea2e8756984cce77 [file] [log] [blame]
// 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() {}