28 lines
551 B
Rust
28 lines
551 B
Rust
|
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]
|
||
|
}
|