summaryrefslogtreecommitdiffstats
path: root/src/test/ui/numbers-arithmetic/shift-various-types.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/numbers-arithmetic/shift-various-types.rs')
-rw-r--r--src/test/ui/numbers-arithmetic/shift-various-types.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/test/ui/numbers-arithmetic/shift-various-types.rs b/src/test/ui/numbers-arithmetic/shift-various-types.rs
new file mode 100644
index 000000000..473bda3d7
--- /dev/null
+++ b/src/test/ui/numbers-arithmetic/shift-various-types.rs
@@ -0,0 +1,48 @@
+// run-pass
+// Test that we can do shifts by any integral type.
+
+
+struct Panolpy {
+ i8: i8,
+ i16: i16,
+ i32: i32,
+ i64: i64,
+ isize: isize,
+
+ u8: u8,
+ u16: u16,
+ u32: u32,
+ u64: u64,
+ usize: usize,
+}
+
+fn foo(p: &Panolpy) {
+ assert_eq!(22 >> p.i8, 11);
+ assert_eq!(22 >> p.i16, 11);
+ assert_eq!(22 >> p.i32, 11);
+ assert_eq!(22 >> p.i64, 11);
+ assert_eq!(22 >> p.isize, 11);
+
+ assert_eq!(22 >> p.u8, 11);
+ assert_eq!(22 >> p.u16, 11);
+ assert_eq!(22 >> p.u32, 11);
+ assert_eq!(22 >> p.u64, 11);
+ assert_eq!(22 >> p.usize, 11);
+}
+
+fn main() {
+ let p = Panolpy {
+ i8: 1,
+ i16: 1,
+ i32: 1,
+ i64: 1,
+ isize: 1,
+
+ u8: 1,
+ u16: 1,
+ u32: 1,
+ u64: 1,
+ usize: 1,
+ };
+ foo(&p)
+}