diff options
author | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-01-30 20:51:47 +0000 |
---|---|---|
committer | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-01-30 20:51:47 +0000 |
commit | 28fdb8d03caf1ab8b40ed0fcbe8e47451fe030d9 (patch) | |
tree | a795362bb8cd25edb87e8da3f9786d68e029c22b /crates/ra_hir/src/ty | |
parent | db17e06c2eec892ab807fd191bc11b15d8da42e2 (diff) | |
parent | 13cb4a1b370038dee51ae739a42d6b98acaef385 (diff) |
Merge #701
701: Minor type inference tweaks r=flodiebold a=marcusklaas
Pass down expectation for reference expressions and type the guard in match expressions.
I wasn't able to add a test for the former addition because the type variable previously introduced would always resolve to the right type in the things I tried!
Co-authored-by: Marcus Klaas de Vries <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/ty')
-rw-r--r-- | crates/ra_hir/src/ty/snapshots/tests__infer_adt_pattern.snap | 23 | ||||
-rw-r--r-- | crates/ra_hir/src/ty/snapshots/tests__infer_array.snap | 14 | ||||
-rw-r--r-- | crates/ra_hir/src/ty/tests.rs | 4 |
3 files changed, 26 insertions, 15 deletions
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_adt_pattern.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_adt_pattern.snap index 2719f592e..48c83cbb2 100644 --- a/crates/ra_hir/src/ty/snapshots/tests__infer_adt_pattern.snap +++ b/crates/ra_hir/src/ty/snapshots/tests__infer_adt_pattern.snap | |||
@@ -1,10 +1,10 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-01-22T14:44:59.880187500+00:00" | 2 | created: "2019-01-28T21:58:55.559331849+00:00" |
3 | creator: insta@0.4.0 | 3 | creator: insta@0.5.2 |
4 | expression: "&result" | 4 | expression: "&result" |
5 | source: "crates\\ra_hir\\src\\ty\\tests.rs" | 5 | source: crates/ra_hir/src/ty/tests.rs |
6 | --- | 6 | --- |
7 | [68; 262) '{ ... d; }': () | 7 | [68; 289) '{ ... d; }': () |
8 | [78; 79) 'e': E | 8 | [78; 79) 'e': E |
9 | [82; 95) 'E::A { x: 3 }': E | 9 | [82; 95) 'E::A { x: 3 }': E |
10 | [92; 93) '3': usize | 10 | [92; 93) '3': usize |
@@ -15,15 +15,18 @@ source: "crates\\ra_hir\\src\\ty\\tests.rs" | |||
15 | [129; 148) 'E::A {..._var }': E | 15 | [129; 148) 'E::A {..._var }': E |
16 | [139; 146) 'new_var': usize | 16 | [139; 146) 'new_var': usize |
17 | [151; 152) 'e': E | 17 | [151; 152) 'e': E |
18 | [159; 218) 'match ... }': usize | 18 | [159; 245) 'match ... }': usize |
19 | [165; 166) 'e': E | 19 | [165; 166) 'e': E |
20 | [177; 187) 'E::A { x }': E | 20 | [177; 187) 'E::A { x }': E |
21 | [184; 185) 'x': usize | 21 | [184; 185) 'x': usize |
22 | [191; 192) 'x': usize | 22 | [191; 192) 'x': usize |
23 | [202; 206) 'E::B': E | 23 | [202; 206) 'E::B': E |
24 | [210; 211) '1': usize | 24 | [210; 213) 'foo': bool |
25 | [229; 248) 'ref d ...{ .. }': &E | 25 | [217; 218) '1': usize |
26 | [237; 248) 'E::A { .. }': E | 26 | [228; 232) 'E::B': E |
27 | [251; 252) 'e': E | 27 | [236; 238) '10': usize |
28 | [258; 259) 'd': &E | 28 | [256; 275) 'ref d ...{ .. }': &E |
29 | [264; 275) 'E::A { .. }': E | ||
30 | [278; 279) 'e': E | ||
31 | [285; 286) 'd': &E | ||
29 | 32 | ||
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_array.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_array.snap index 3f2faa598..042248c35 100644 --- a/crates/ra_hir/src/ty/snapshots/tests__infer_array.snap +++ b/crates/ra_hir/src/ty/snapshots/tests__infer_array.snap | |||
@@ -1,12 +1,12 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-01-22T14:44:59.880187500+00:00" | 2 | created: "2019-01-30T20:08:05.185312835+00:00" |
3 | creator: insta@0.4.0 | 3 | creator: insta@0.5.2 |
4 | expression: "&result" | 4 | expression: "&result" |
5 | source: "crates\\ra_hir\\src\\ty\\tests.rs" | 5 | source: crates/ra_hir/src/ty/tests.rs |
6 | --- | 6 | --- |
7 | [9; 10) 'x': &str | 7 | [9; 10) 'x': &str |
8 | [18; 19) 'y': isize | 8 | [18; 19) 'y': isize |
9 | [28; 293) '{ ... []; }': () | 9 | [28; 324) '{ ... 3]; }': () |
10 | [38; 39) 'a': [&str] | 10 | [38; 39) 'a': [&str] |
11 | [42; 45) '[x]': [&str] | 11 | [42; 45) '[x]': [&str] |
12 | [43; 44) 'x': &str | 12 | [43; 44) 'x': &str |
@@ -56,4 +56,10 @@ source: "crates\\ra_hir\\src\\ty\\tests.rs" | |||
56 | [260; 263) '"b"': &str | 56 | [260; 263) '"b"': &str |
57 | [275; 276) 'x': [u8] | 57 | [275; 276) 'x': [u8] |
58 | [288; 290) '[]': [u8] | 58 | [288; 290) '[]': [u8] |
59 | [300; 301) 'z': &[u8] | ||
60 | [311; 321) '&[1, 2, 3]': &[u8] | ||
61 | [312; 321) '[1, 2, 3]': [u8] | ||
62 | [313; 314) '1': u8 | ||
63 | [316; 317) '2': u8 | ||
64 | [319; 320) '3': u8 | ||
59 | 65 | ||
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs index b36e6ec47..cb8d6351d 100644 --- a/crates/ra_hir/src/ty/tests.rs +++ b/crates/ra_hir/src/ty/tests.rs | |||
@@ -371,6 +371,7 @@ fn test(x: &str, y: isize) { | |||
371 | 371 | ||
372 | let b = [a, ["b"]]; | 372 | let b = [a, ["b"]]; |
373 | let x: [u8; 0] = []; | 373 | let x: [u8; 0] = []; |
374 | let z: &[u8] = &[1, 2, 3]; | ||
374 | } | 375 | } |
375 | "#, | 376 | "#, |
376 | ); | 377 | ); |
@@ -426,7 +427,8 @@ fn test() { | |||
426 | 427 | ||
427 | match e { | 428 | match e { |
428 | E::A { x } => x, | 429 | E::A { x } => x, |
429 | E::B => 1, | 430 | E::B if foo => 1, |
431 | E::B => 10, | ||
430 | }; | 432 | }; |
431 | 433 | ||
432 | let ref d @ E::A { .. } = e; | 434 | let ref d @ E::A { .. } = e; |