mirror of
https://github.com/rust-lang/rust
synced 2024-09-05 16:57:03 +00:00
32 lines
544 B
Rust
32 lines
544 B
Rust
// Test that we can do shifts by any integral type.
|
|
|
|
struct Panolpy {
|
|
char: char,
|
|
str: &'static str,
|
|
}
|
|
|
|
fn foo(p: &Panolpy) {
|
|
22 >> p.char;
|
|
//~^ ERROR E0277
|
|
|
|
22 >> p.str;
|
|
//~^ ERROR E0277
|
|
|
|
22 >> p;
|
|
//~^ ERROR E0277
|
|
|
|
let x;
|
|
22 >> x; // ambiguity error winds up being suppressed
|
|
|
|
22 >> 1;
|
|
// Integer literal types are OK
|
|
|
|
// Type of the result follows the LHS, not the RHS:
|
|
let _: i32 = 22_i64 >> 1_i32;
|
|
//~^ ERROR mismatched types
|
|
//~| expected `i32`, found `i64`
|
|
}
|
|
|
|
fn main() {
|
|
}
|