Florian Diebold
a1bda3fc08
Handle generic args for method calls
2019-02-16 23:06:41 +01:00
Florian Diebold
65bd9bc3a8
Handle impl generics in method calls
2019-02-16 23:06:41 +01:00
Florian Diebold
ccfc6b11c1
Add a test for impl generics
2019-02-16 23:06:41 +01:00
Florian Diebold
0242acae53
Turn ImplBlock into a copy type just containing IDs
...
This makes it more like the other code model types.
Also make Module::definition_source/declaration_source return HirFileIds, to
make them more like the other source functions.
2019-02-16 22:08:13 +01:00
Florian Diebold
e5f9d54661
Fix another crash
2019-02-12 21:49:54 +01:00
Laurențiu Nicola
7e8527f748
Implement completion for associated items
2019-02-12 12:51:01 +02:00
Aleksey Kladov
60524771fd
replace clone with copy
2019-02-12 13:32:34 +03:00
Aleksey Kladov
fa2e6e0bda
fix obsolete comment
2019-02-12 13:29:27 +03:00
Florian Diebold
c098a3fda5
Add comment and mark
2019-02-09 22:03:01 +01:00
Florian Diebold
a28d4befaf
Fix another crash, and try harder to prevent stack overflows
2019-02-09 21:53:55 +01:00
Florian Diebold
c0c3b37255
Fix another crash found when analyzing rustc
2019-02-09 21:37:30 +01:00
Florian Diebold
f1afc93353
Fix handling of literal patterns
...
Wrap them in a LiteralPat node so they can be distinguished from literal
expressions.
2019-02-09 21:37:30 +01:00
Florian Diebold
7ebde241c0
Fix two crashes found by running inference on all of rustc
2019-02-09 21:37:09 +01:00
Aleksey Kladov
12e3b4c70b
reformat the world
2019-02-08 14:49:43 +03:00
kjeremy
6753051a45
Some clippy cleanups
2019-02-06 15:50:26 -05:00
kjeremy
5227102c12
Test more Self inference
2019-02-04 14:44:06 -05:00
Florian Diebold
6b076f1931
Use new Resolver API in type inference
2019-02-01 22:45:23 +01:00
kjeremy
f0fdc9d5c0
Go To Implementation for Trait
2019-01-31 18:34:52 -05:00
bors[bot]
28fdb8d03c
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 <mail@marcusklaas.nl>
2019-01-30 20:51:47 +00:00
Marcus Klaas de Vries
13cb4a1b37
Add test for passing on ref expectations
2019-01-30 21:14:26 +01:00
Aleksey Kladov
ef7eb8c257
Use Crate instead of CrateId
2019-01-30 22:37:20 +03:00
Jeremy Kolb
3c17643b30
Go to Implementation for structs and enums
2019-01-29 19:13:02 -05:00
Marcus Klaas de Vries
3daca3eb4d
Infer type of match guard
2019-01-28 23:09:14 +01:00
WizardOfMenlo
9416904d14
Added support for primitive types type inference when using std::ops::Not
2019-01-28 14:52:43 +00:00
Marcus Klaas de Vries
6249989e6c
Process second review
2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
f6eb44cd9e
Use type information from the turbofish
2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
0da1e8b2f8
Add a FnSig to Ty::FnDef
2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
04748a0f16
Add missing ty test snapshot
2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
aa06893a14
Add type params to FnSignature
2019-01-27 17:59:21 +01:00
Marcus Klaas de Vries
3bd47c0285
First attempt at generic type inference for fns
2019-01-27 17:59:21 +01:00
Florian Diebold
94bbb2418a
Add marks
2019-01-26 23:59:11 +01:00
Florian Diebold
77f92674f9
Handle cycles in type vars
...
This might be the cause of #587 .
2019-01-26 23:48:01 +01:00
Aleksey Kladov
619af1e22c
fix AST for if expressions
...
then is not always a block...
2019-01-27 00:37:11 +03:00
Aleksey Kladov
9457b1f0e6
rename source_file -> parse
2019-01-26 11:51:36 +03:00
Aleksey Kladov
4711cbcace
rename FilesDatabase -> SourceDatabase
2019-01-26 11:20:30 +03:00
Aleksey Kladov
be1a005ebd
fold syntax database into files database
2019-01-26 11:09:39 +03:00
Florian Diebold
5a1385007c
Fix type inference of binops on int/float variables
...
Fixes #651 .
2019-01-25 21:32:49 +01:00
Aleksey Kladov
60a607d33f
new struct id
2019-01-24 17:54:18 +03:00
Aleksey Kladov
ec7ed054e0
Functions use new id scheme
2019-01-24 15:28:50 +03:00
Aleksey Kladov
3ab1519cb2
Change ids strategy
...
this is a part of larghish hir refactoring which aims to
* replace per-source-root module trees with per crate trees
* switch from a monotyped DedId to type-specific ids
2019-01-24 13:29:19 +03:00
Aleksey Kladov
7b901f86cd
move SyntaxPtr to ra_syntax
2019-01-23 17:37:10 +03:00
Jeremy A. Kolb
7c27e6d2b3
Update snaps
2019-01-22 09:51:29 -05:00
Florian Diebold
a252110616
Use insta for ty tests
2019-01-21 22:52:35 +01:00
Florian Diebold
e45f476d56
Fix panic trying to get substs on unknown type
...
Fixes #585 .
2019-01-21 21:42:19 +01:00
Florian Diebold
3c4a4c6ae9
Fix panic on inferring field access on an enum
2019-01-20 18:14:19 +01:00
Florian Diebold
969f588025
Generics -> GenericParams
2019-01-19 18:58:04 +01:00
Florian Diebold
9e4b5ecec4
Make generics work in struct patterns
2019-01-19 16:02:06 +01:00
Florian Diebold
d37bb128ef
Collect generic args in struct variant paths as well
2019-01-19 16:02:06 +01:00
Florian Diebold
cc4562ab6e
Collect generic args in type paths
...
E.g. `let x: A<X>` is handled correctly.
2019-01-19 16:02:06 +01:00
Florian Diebold
688a45e00b
Implement beginnings of generics
...
- add HIR for generic params
- resolve generic params in type paths
- add substitions for ADTs
- insert type variables for substitutions
2019-01-19 16:02:06 +01:00