1 error[E0053]: method `call` has an incompatible type for trait
2 --> $DIR/issue-20225.rs:16:3
4 LL | extern "rust-call" fn call(&self, (_,): (T,)) {}
5 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected reference, found type parameter
7 = note: expected type `extern "rust-call" fn(&Foo, (&'a T,))`
8 found type `extern "rust-call" fn(&Foo, (T,))`
10 error[E0053]: method `call_mut` has an incompatible type for trait
11 --> $DIR/issue-20225.rs:22:3
13 LL | extern "rust-call" fn call_mut(&mut self, (_,): (T,)) {}
14 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected reference, found type parameter
16 = note: expected type `extern "rust-call" fn(&mut Foo, (&'a T,))`
17 found type `extern "rust-call" fn(&mut Foo, (T,))`
19 error[E0053]: method `call_once` has an incompatible type for trait
20 --> $DIR/issue-20225.rs:30:3
22 LL | extern "rust-call" fn call_once(self, (_,): (T,)) {}
23 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected reference, found type parameter
25 = note: expected type `extern "rust-call" fn(Foo, (&'a T,))`
26 found type `extern "rust-call" fn(Foo, (T,))`
28 error: aborting due to 3 previous errors
30 For more information about this error, try `rustc --explain E0053`.