2023-12-18 10:55:55 -06:00
|
|
|
// 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.
|
2024-02-16 14:02:50 -06:00
|
|
|
//@ edition:2018
|
2023-12-18 10:55:55 -06:00
|
|
|
|
|
|
|
macro_rules! demo {
|
|
|
|
($ty:ty) => { compile_error!("ty"); };
|
2024-02-20 10:09:03 -06:00
|
|
|
//~^ ERROR ty
|
|
|
|
//~| ERROR ty
|
|
|
|
(impl $c:ident Trait) => {};
|
|
|
|
(dyn $c:ident Trait) => {};
|
2023-12-18 10:55:55 -06:00
|
|
|
}
|
|
|
|
|
2024-02-20 10:09:03 -06:00
|
|
|
demo! { impl const Trait }
|
|
|
|
//~^ ERROR const trait impls are experimental
|
2023-12-18 10:55:55 -06:00
|
|
|
|
2024-02-20 10:09:03 -06:00
|
|
|
demo! { dyn const Trait }
|
2023-12-18 10:55:55 -06:00
|
|
|
//~^ ERROR const trait impls are experimental
|
|
|
|
|
|
|
|
fn main() {}
|