]> git.lizzy.rs Git - rust.git/blob - tests/ui/object-pointer-types.rs
Rollup merge of #106470 - ehuss:tidy-no-wasm, r=Mark-Simulacrum
[rust.git] / tests / ui / object-pointer-types.rs
1 trait Foo {
2     fn borrowed(&self);
3     fn borrowed_mut(&mut self);
4
5     fn owned(self: Box<Self>);
6 }
7
8 fn borrowed_receiver(x: &dyn Foo) {
9     x.borrowed();
10     x.borrowed_mut(); // See [1]
11     x.owned(); //~ ERROR no method named `owned` found
12 }
13
14 fn borrowed_mut_receiver(x: &mut dyn Foo) {
15     x.borrowed();
16     x.borrowed_mut();
17     x.owned(); //~ ERROR no method named `owned` found
18 }
19
20 fn owned_receiver(x: Box<dyn Foo>) {
21     x.borrowed();
22     x.borrowed_mut(); // See [1]
23     x.managed();  //~ ERROR no method named `managed` found
24     x.owned();
25 }
26
27 fn main() {}
28
29 // [1]: These cases are illegal, but the error is not detected
30 // until borrowck, so see the test borrowck-object-mutability.rs