#![feature(const_trait_impl)] #[const_trait] trait Trait {} // Regression test for issue #90052. fn non_const_function() {} //~ ERROR `~const` is not allowed struct Struct { field: T } //~ ERROR `~const` is not allowed here struct TupleStruct(T); //~ ERROR `~const` is not allowed here struct UnitStruct; //~ ERROR `~const` is not allowed here enum Enum { Variant(T) } //~ ERROR `~const` is not allowed here union Union { field: T } //~ ERROR `~const` is not allowed here type Type = T; //~ ERROR `~const` is not allowed here const CONSTANT: () = (); //~ ERROR `~const` is not allowed here //~^ ERROR generic const items are experimental trait NonConstTrait { type Type: ~const Trait; //~^ ERROR `~const` is not allowed //~| ERROR `~const` is not allowed fn non_const_function(); //~ ERROR `~const` is not allowed const CONSTANT: (); //~ ERROR `~const` is not allowed //~^ ERROR generic const items are experimental } impl NonConstTrait for () { type Type = (); //~ ERROR `~const` is not allowed fn non_const_function() {} //~ ERROR `~const` is not allowed const CONSTANT: () = (); //~ ERROR `~const` is not allowed //~^ ERROR generic const items are experimental } struct Implementor; impl Implementor { type Type = (); //~ ERROR `~const` is not allowed //~^ ERROR inherent associated types are unstable fn non_const_function() {} //~ ERROR `~const` is not allowed const CONSTANT: () = (); //~ ERROR `~const` is not allowed //~^ ERROR generic const items are experimental } // non-const traits trait Child0: ~const Trait {} //~ ERROR `~const` is not allowed trait Child1 where Self: ~const Trait {} //~ ERROR `~const` is not allowed // non-const impl impl Trait for T {} //~ ERROR `~const` is not allowed // inherent impl (regression test for issue #117004) impl Struct {} //~ ERROR `~const` is not allowed fn main() {}