about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2020-02-09 01:51:13 +0000
committervarkor <github@varkor.com>2020-02-09 01:51:13 +0000
commit0276d7a32e1c83abc3106f7b36b711faf1f74dff (patch)
tree3b9564f0b1e28973168ef17c0e25a1457c63a064
parent38060567e89bb142e8a060d91bf53f7e82eaaae6 (diff)
downloadrust-0276d7a32e1c83abc3106f7b36b711faf1f74dff.tar.gz
rust-0276d7a32e1c83abc3106f7b36b711faf1f74dff.zip
Add more tests
-rw-r--r--src/test/ui/inference/infer-binary-operand-behind-reference.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/ui/inference/infer-binary-operand-behind-reference.rs b/src/test/ui/inference/infer-binary-operand-behind-reference.rs
index 4e41077ba34..0c0a3171ee9 100644
--- a/src/test/ui/inference/infer-binary-operand-behind-reference.rs
+++ b/src/test/ui/inference/infer-binary-operand-behind-reference.rs
@@ -1,6 +1,8 @@
 // check-pass
 
 fn main() {
+    // Test that we can infer the type of binary operands when
+    // references are involved, on various types and operators.
     let _: u8 = 0 + 0;
     let _: u8 = 0 + &0;
     let _: u8 = &0 + 0;
@@ -10,4 +12,19 @@ fn main() {
     let _: f32 = 0.0 + &0.0;
     let _: f32 = &0.0 + 0.0;
     let _: f32 = &0.0 + &0.0;
+
+    let _: u8 = 0 << 0;
+    let _: u8 = 0 << &0;
+    let _: u8 = &0 << 0;
+    let _: u8 = &0 << &0;
+
+    // Test type inference when variable types are indirectly inferred.
+    let a = 22;
+    let _: usize = a + &44;
+
+    // When we have no expected type, the types of the operands is the default type.
+    let _ = 0 + 0;
+    let _ = 0 + &0;
+    let _ = &0 + 0;
+    let _ = &0 + &0;
 }