2023-01-02 23:27:49 -06:00
|
|
|
#[derive(Clone)]
|
|
|
|
struct S;
|
|
|
|
|
|
|
|
trait X {}
|
|
|
|
|
|
|
|
impl X for S {}
|
|
|
|
|
|
|
|
fn foo<T: X>(_: T) {}
|
2023-01-06 17:16:48 -06:00
|
|
|
fn bar<T: X>(s: &T) {
|
2023-01-02 23:27:49 -06:00
|
|
|
foo(s); //~ ERROR the trait bound `&T: X` is not satisfied
|
|
|
|
}
|
|
|
|
|
2023-01-06 17:16:48 -06:00
|
|
|
fn bar_with_clone<T: X + Clone>(s: &T) {
|
2023-01-02 23:27:49 -06:00
|
|
|
foo(s); //~ ERROR the trait bound `&T: X` is not satisfied
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let s = &S;
|
|
|
|
bar(s);
|
|
|
|
}
|