diff options
author | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-01-19 18:03:36 +0000 |
---|---|---|
committer | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-01-19 18:03:36 +0000 |
commit | 1c296d54e3dcc36c1a778873f26035000a352ba2 (patch) | |
tree | 0a6ce660ee32080287284c93bffaaaada91f3584 /crates/ra_hir/src/ty/tests/data/generic_chain.txt | |
parent | bade91db081a3465dea3547ab8ab669f78fde9dc (diff) | |
parent | 5f3509e140d19b989db418a00ac6778c622cde5d (diff) |
Merge #576
576: Beginnings of generics r=matklad a=flodiebold
This implements the beginnings of the generics infrastructure; generic parameters for structs work and are correctly substituted in fields. Functions and methods aren't handled at all yet (as the tests show).
The name resolution in `ty` really needs refactoring now, I hope to do that next ;)
Co-authored-by: Florian Diebold <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/ty/tests/data/generic_chain.txt')
-rw-r--r-- | crates/ra_hir/src/ty/tests/data/generic_chain.txt | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/crates/ra_hir/src/ty/tests/data/generic_chain.txt b/crates/ra_hir/src/ty/tests/data/generic_chain.txt new file mode 100644 index 000000000..568e00846 --- /dev/null +++ b/crates/ra_hir/src/ty/tests/data/generic_chain.txt | |||
@@ -0,0 +1,29 @@ | |||
1 | [53; 57) 'self': A<[unknown]> | ||
2 | [65; 87) '{ ... }': [unknown] | ||
3 | [75; 79) 'self': A<[unknown]> | ||
4 | [75; 81) 'self.x': [unknown] | ||
5 | [99; 100) 't': [unknown] | ||
6 | [110; 115) '{ t }': [unknown] | ||
7 | [112; 113) 't': [unknown] | ||
8 | [135; 261) '{ ....x() }': i128 | ||
9 | [146; 147) 'x': T | ||
10 | [150; 151) '1': T | ||
11 | [162; 163) 'y': T | ||
12 | [166; 168) 'id': fn(T) -> T | ||
13 | [166; 171) 'id(x)': T | ||
14 | [169; 170) 'x': T | ||
15 | [182; 183) 'a': A<T> | ||
16 | [186; 200) 'A { x: id(y) }': A<T> | ||
17 | [193; 195) 'id': fn(T) -> T | ||
18 | [193; 198) 'id(y)': T | ||
19 | [196; 197) 'y': T | ||
20 | [211; 212) 'z': T | ||
21 | [215; 217) 'id': fn(T) -> T | ||
22 | [215; 222) 'id(a.x)': T | ||
23 | [218; 219) 'a': A<T> | ||
24 | [218; 221) 'a.x': T | ||
25 | [233; 234) 'b': A<T> | ||
26 | [237; 247) 'A { x: z }': A<T> | ||
27 | [244; 245) 'z': T | ||
28 | [254; 255) 'b': A<T> | ||
29 | [254; 259) 'b.x()': i128 | ||