diff options
author | Florian Diebold <[email protected]> | 2018-12-26 16:00:42 +0000 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2018-12-29 11:04:34 +0000 |
commit | cfa1de72ebb7060a82dbf7a67432047d9ea2288a (patch) | |
tree | a679ed837f309ee523590b5777b919604e588b4b /crates/ra_hir/src/ty/tests/data | |
parent | f3f073804cf768c0b219d89081a26bedfde8ffed (diff) |
Implement type variables
This will really become necessary when we implement generics, but even now, it
allows us to reason 'backwards' to infer types of expressions that we didn't
understand for some reason.
We use ena, the union-find implementation extracted from rustc, to keep track of
type variables.
Diffstat (limited to 'crates/ra_hir/src/ty/tests/data')
-rw-r--r-- | crates/ra_hir/src/ty/tests/data/0002_let.txt | 2 | ||||
-rw-r--r-- | crates/ra_hir/src/ty/tests/data/0003_paths.txt | 8 | ||||
-rw-r--r-- | crates/ra_hir/src/ty/tests/data/0004_struct.txt | 4 | ||||
-rw-r--r-- | crates/ra_hir/src/ty/tests/data/0006_backwards.txt | 20 |
4 files changed, 27 insertions, 7 deletions
diff --git a/crates/ra_hir/src/ty/tests/data/0002_let.txt b/crates/ra_hir/src/ty/tests/data/0002_let.txt index 2d0d1f57b..916ca25a1 100644 --- a/crates/ra_hir/src/ty/tests/data/0002_let.txt +++ b/crates/ra_hir/src/ty/tests/data/0002_let.txt | |||
@@ -1,5 +1,5 @@ | |||
1 | [21; 22) 'a': [unknown] | 1 | [21; 22) 'a': [unknown] |
2 | [52; 53) '1': [unknown] | 2 | [52; 53) '1': usize |
3 | [11; 71) '{ ...= b; }': () | 3 | [11; 71) '{ ...= b; }': () |
4 | [63; 64) 'c': usize | 4 | [63; 64) 'c': usize |
5 | [25; 31) '1isize': [unknown] | 5 | [25; 31) '1isize': [unknown] |
diff --git a/crates/ra_hir/src/ty/tests/data/0003_paths.txt b/crates/ra_hir/src/ty/tests/data/0003_paths.txt index dcb5456ae..2a12d264f 100644 --- a/crates/ra_hir/src/ty/tests/data/0003_paths.txt +++ b/crates/ra_hir/src/ty/tests/data/0003_paths.txt | |||
@@ -1,7 +1,7 @@ | |||
1 | [15; 20) '{ 1 }': [unknown] | 1 | [15; 20) '{ 1 }': u32 |
2 | [17; 18) '1': [unknown] | 2 | [17; 18) '1': u32 |
3 | [50; 51) '1': [unknown] | 3 | [50; 51) '1': u32 |
4 | [48; 53) '{ 1 }': [unknown] | 4 | [48; 53) '{ 1 }': u32 |
5 | [82; 88) 'b::c()': u32 | 5 | [82; 88) 'b::c()': u32 |
6 | [67; 91) '{ ...c(); }': () | 6 | [67; 91) '{ ...c(); }': () |
7 | [73; 74) 'a': fn() -> u32 | 7 | [73; 74) 'a': fn() -> u32 |
diff --git a/crates/ra_hir/src/ty/tests/data/0004_struct.txt b/crates/ra_hir/src/ty/tests/data/0004_struct.txt index cc8f3665b..b4af18b87 100644 --- a/crates/ra_hir/src/ty/tests/data/0004_struct.txt +++ b/crates/ra_hir/src/ty/tests/data/0004_struct.txt | |||
@@ -1,5 +1,5 @@ | |||
1 | [86; 90) 'C(1)': [unknown] | 1 | [86; 90) 'C(1)': [unknown] |
2 | [121; 122) 'B': [unknown] | 2 | [121; 122) 'B': B |
3 | [86; 87) 'C': [unknown] | 3 | [86; 87) 'C': [unknown] |
4 | [129; 130) '1': [unknown] | 4 | [129; 130) '1': [unknown] |
5 | [107; 108) 'a': A | 5 | [107; 108) 'a': A |
@@ -13,4 +13,4 @@ | |||
13 | [96; 97) 'B': [unknown] | 13 | [96; 97) 'B': [unknown] |
14 | [88; 89) '1': [unknown] | 14 | [88; 89) '1': [unknown] |
15 | [82; 83) 'c': [unknown] | 15 | [82; 83) 'c': [unknown] |
16 | [127; 131) 'C(1)': [unknown] | 16 | [127; 131) 'C(1)': C |
diff --git a/crates/ra_hir/src/ty/tests/data/0006_backwards.txt b/crates/ra_hir/src/ty/tests/data/0006_backwards.txt new file mode 100644 index 000000000..3a12aeef4 --- /dev/null +++ b/crates/ra_hir/src/ty/tests/data/0006_backwards.txt | |||
@@ -0,0 +1,20 @@ | |||
1 | [22; 24) '{}': () | ||
2 | [14; 15) 'x': u32 | ||
3 | [142; 158) 'unknow...nction': [unknown] | ||
4 | [126; 127) 'a': u32 | ||
5 | [198; 216) 'unknow...tion()': f64 | ||
6 | [228; 229) 'c': f64 | ||
7 | [198; 214) 'unknow...nction': [unknown] | ||
8 | [166; 184) 'S { i3...d: b }': S | ||
9 | [222; 229) '&mut &c': &mut &f64 | ||
10 | [194; 195) 'c': f64 | ||
11 | [92; 110) 'unknow...tion()': u32 | ||
12 | [142; 160) 'unknow...tion()': i32 | ||
13 | [92; 108) 'unknow...nction': [unknown] | ||
14 | [116; 128) 'takes_u32(a)': [unknown] | ||
15 | [78; 231) '{ ...t &c }': &mut &f64 | ||
16 | [227; 229) '&c': &f64 | ||
17 | [88; 89) 'a': u32 | ||
18 | [181; 182) 'b': i32 | ||
19 | [116; 125) 'takes_u32': fn(u32,) -> [unknown] | ||
20 | [138; 139) 'b': i32 | ||