mirror of
https://github.com/rust-lang/rust.git
synced 2024-12-08 22:53:50 +00:00
36 lines
588 B
Rust
36 lines
588 B
Rust
|
// check-fail
|
||
|
use std::ops::Deref;
|
||
|
|
||
|
fn main() {
|
||
|
fn save(who: &str) {
|
||
|
println!("I'll save you, {}!", who);
|
||
|
}
|
||
|
|
||
|
struct Madoka;
|
||
|
|
||
|
impl Deref for Madoka {
|
||
|
type Target = str;
|
||
|
fn deref(&self) -> &Self::Target {
|
||
|
"Madoka"
|
||
|
}
|
||
|
}
|
||
|
|
||
|
save(&{ Madoka });
|
||
|
|
||
|
fn reset(how: &u32) {
|
||
|
println!("Reset {} times", how);
|
||
|
}
|
||
|
|
||
|
struct Homura;
|
||
|
|
||
|
impl Deref for Homura {
|
||
|
type Target = u32;
|
||
|
fn deref(&self) -> &Self::Target {
|
||
|
&42
|
||
|
}
|
||
|
}
|
||
|
|
||
|
reset(&{ Homura });
|
||
|
//~^ ERROR mismatched types
|
||
|
}
|