]> git.lizzy.rs Git - rust.git/blob - src/test/ui/symbol-names/trait-objects.rs
Rollup merge of #105555 - krasimirgg:llvm-int-opt-2, r=cuviper
[rust.git] / src / test / ui / symbol-names / trait-objects.rs
1 // Ensure that trait objects don't include more than one binder. See #83611
2
3 // build-fail
4 // revisions: v0
5 //[v0]compile-flags: -C symbol-mangling-version=v0
6 //[v0]normalize-stderr-test: "core\[.*?\]" -> "core[HASH]"
7
8 #![feature(rustc_attrs)]
9
10 trait Bar {
11     fn method(&self) {}
12 }
13
14 impl Bar for &dyn FnMut(&u8) {
15     #[rustc_symbol_name]
16     //[v0]~^ ERROR symbol-name
17     //[v0]~| ERROR demangling
18     //[v0]~| ERROR demangling-alt
19     fn method(&self) {}
20 }
21
22 trait Foo {
23     fn method(&self) {}
24 }
25
26 impl Foo for &(dyn FnMut(&u8) + for<'b> Send) {
27     #[rustc_symbol_name]
28     //[v0]~^ ERROR symbol-name
29     //[v0]~| ERROR demangling
30     //[v0]~| ERROR demangling-alt
31     fn method(&self) {}
32 }
33
34 trait Baz {
35     fn method(&self) {}
36 }
37
38 impl Baz for &(dyn for<'b> Send + FnMut(&u8)) {
39     #[rustc_symbol_name]
40     //[v0]~^ ERROR symbol-name
41     //[v0]~| ERROR demangling
42     //[v0]~| ERROR demangling-alt
43     fn method(&self) {}
44 }
45
46 fn main() {
47 }