// Ensure that trait objects don't include more than one binder. See #83611 // build-fail // revisions: v0 //[v0]compile-flags: -C symbol-mangling-version=v0 //[v0]normalize-stderr-test: "core\[.*?\]" -> "core[HASH]" #![feature(rustc_attrs)] trait Bar { fn method(&self) {} } impl Bar for &dyn FnMut(&u8) { #[rustc_symbol_name] //[v0]~^ ERROR symbol-name //[v0]~| ERROR demangling //[v0]~| ERROR demangling-alt fn method(&self) {} } trait Foo { fn method(&self) {} } impl Foo for &(dyn FnMut(&u8) + for<'b> Send) { #[rustc_symbol_name] //[v0]~^ ERROR symbol-name //[v0]~| ERROR demangling //[v0]~| ERROR demangling-alt fn method(&self) {} } trait Baz { fn method(&self) {} } impl Baz for &(dyn for<'b> Send + FnMut(&u8)) { #[rustc_symbol_name] //[v0]~^ ERROR symbol-name //[v0]~| ERROR demangling //[v0]~| ERROR demangling-alt fn method(&self) {} } fn main() { }