#![feature(impl_trait_in_bindings)] fn a(x: T) { const foo: impl Clone = x; //~^ ERROR attempt to use a non-constant value in a constant } fn b(x: T) { let _ = move || { const foo: impl Clone = x; //~^ ERROR attempt to use a non-constant value in a constant }; } trait Foo { fn a(x: T) { const foo: impl Clone = x; //~^ ERROR attempt to use a non-constant value in a constant } } impl Foo for i32 { fn a(x: T) { const foo: impl Clone = x; //~^ ERROR attempt to use a non-constant value in a constant } } fn main() { }