aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/tests.rs
diff options
context:
space:
mode:
authorbors[bot] <bors[bot]@users.noreply.github.com>2019-01-06 21:28:36 +0000
committerbors[bot] <bors[bot]@users.noreply.github.com>2019-01-06 21:28:36 +0000
commit31c1999505ccb51584dee45fb9fa1ffe16b1608e (patch)
tree64404f418c59cbbf7dcb52a834da0d44d444a8c5 /crates/ra_hir/src/ty/tests.rs
parent0d59422b18de8dce416d792b9e7dbe9b8d5aa30a (diff)
parent82d9a77dade454ee8d09f198fa839e7755ff7bfb (diff)
Merge #440
440: Implement type inference for boolean operators r=flodiebold a=marcusklaas Tried implementing the easiest part of https://github.com/rust-analyzer/rust-analyzer/issues/390. Hope this is somewhat close to what the intent of the issue was. Found it surprisingly easy to find my way around the repository - it's well organized! Very grateful for any pointers. Co-authored-by: Marcus Klaas de Vries <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/ty/tests.rs')
-rw-r--r--crates/ra_hir/src/ty/tests.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs
index 515c66e85..25a354947 100644
--- a/crates/ra_hir/src/ty/tests.rs
+++ b/crates/ra_hir/src/ty/tests.rs
@@ -156,6 +156,30 @@ impl S {
156 ); 156 );
157} 157}
158 158
159#[test]
160fn infer_boolean_op() {
161 check_inference(
162 r#"
163fn f(x: bool) -> i32 {
164 0i32
165}
166
167fn test() {
168 let x = a && b;
169 let y = true || false;
170 let z = x == y;
171 let h = CONST_1 <= CONST_2;
172 let c = f(z || y) + 5;
173 let d = b;
174 let e = 3i32 && "hello world";
175
176 10 < 3
177}
178"#,
179 "0008_boolean_op.txt",
180 );
181}
182
159fn infer(content: &str) -> String { 183fn infer(content: &str) -> String {
160 let (db, _, file_id) = MockDatabase::with_single_file(content); 184 let (db, _, file_id) = MockDatabase::with_single_file(content);
161 let source_file = db.source_file(file_id); 185 let source_file = db.source_file(file_id);