]> git.lizzy.rs Git - rust.git/blob - src/test/ui/shift-various-bad-types.rs
Rollup merge of #53317 - estebank:abolish-ice, r=oli-obk
[rust.git] / src / test / ui / shift-various-bad-types.rs
1 // Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 // Test that we can do shifts by any integral type.
12
13 struct Panolpy {
14     char: char,
15     str: &'static str,
16 }
17
18 fn foo(p: &Panolpy) {
19     22 >> p.char;
20     //~^ ERROR E0277
21
22     22 >> p.str;
23     //~^ ERROR E0277
24
25     22 >> p;
26     //~^ ERROR E0277
27
28     let x;
29     22 >> x; // ambiguity error winds up being suppressed
30
31     22 >> 1;
32     // Integer literal types are OK
33
34     // Type of the result follows the LHS, not the RHS:
35     let _: i32 = 22_i64 >> 1_i32;
36     //~^ ERROR mismatched types
37     //~| expected i32, found i64
38 }
39
40 fn main() {
41 }