use std::ops::Deref; | |
struct Foo; | |
impl Deref for Foo { | |
type Target = [u8]; | |
fn deref(&self) -> &Self::Target { | |
&[] | |
} | |
} | |
fn main() { | |
let _ = "foo" as bool; | |
//~^ ERROR casting `&'static str` as `bool` is invalid [E0606] | |
let _ = String::from("foo") as bool; | |
//~^ ERROR non-primitive cast: `String` as `bool` [E0605] | |
let _ = Foo as bool; | |
//~^ ERROR non-primitive cast: `Foo` as `bool` [E0605] | |
} | |
fn _slice(bar: &[i32]) -> bool { | |
bar as bool | |
//~^ ERROR casting `&[i32]` as `bool` is invalid [E0606] | |
} |