]> git.lizzy.rs Git - rust.git/blob - src/test/ui/feature-gates/feature-gate-object_safe_for_dispatch.rs
parser will not give wrong help message for 'public'
[rust.git] / src / test / ui / feature-gates / feature-gate-object_safe_for_dispatch.rs
1 // Test that the use of the non object-safe trait objects
2 // are gated by `object_safe_for_dispatch` feature gate.
3
4 trait NonObjectSafe1: Sized {}
5
6 trait NonObjectSafe2 {
7     fn static_fn() {}
8 }
9
10 trait NonObjectSafe3 {
11     fn foo<T>(&self);
12 }
13
14 trait NonObjectSafe4 {
15     fn foo(&self, s: &Self);
16 }
17
18 fn takes_non_object_safe_ref<T>(obj: &dyn NonObjectSafe1) {
19     //~^ ERROR E0038
20 }
21
22 fn return_non_object_safe_ref() -> &'static dyn NonObjectSafe2 {
23     //~^ ERROR E0038
24     loop {}
25 }
26
27 fn takes_non_object_safe_box(obj: Box<dyn NonObjectSafe3>) {
28     //~^ ERROR E0038
29 }
30
31 fn return_non_object_safe_rc() -> std::rc::Rc<dyn NonObjectSafe4> {
32     //~^ ERROR E0038
33     loop {}
34 }
35
36 trait Trait {}
37
38 impl Trait for dyn NonObjectSafe1 {}
39 //~^ ERROR E0038
40
41 fn main() {}