aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty
Commit message (Collapse)AuthorAgeFilesLines
* Introduce ArenaMapFlorian Diebold2019-01-061-4/+4
|
* Sort ranges in type inference testsFlorian Diebold2019-01-069-92/+93
| | | | | Also rename the files to remove the numbers (they don't serve a purpose now that there are only the data files).
* Use HIR Expr for type inferenceFlorian Diebold2019-01-066-17/+35
| | | | | Now we can reuse the type inference inside a function when typing whitespace etc. :)
* Merge #440bors[bot]2019-01-062-0/+55
|\ | | | | | | | | | | | | | | | | | | 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]>
| * Touch up type inference for boolean operatorsMarcus Klaas de Vries2019-01-062-10/+38
| | | | | | | | | | Also try to infer its subexpressions and set type expectations whenever possible.
| * Implement type inference for boolean operatorsMarcus Klaas de Vries2019-01-052-0/+27
| |
* | Add test for invalidation of inferred types when typing inside functionFlorian Diebold2019-01-051-0/+44
|/ | | | This currently fails, but should work once we have hir::Expr.
* Resolve the Self typeFlorian Diebold2019-01-041-2/+2
|
* Resolve the self parameter during type inferenceFlorian Diebold2019-01-041-2/+2
|
* Type the self parameterFlorian Diebold2019-01-041-0/+2
|
* Add test for self type inferenceFlorian Diebold2019-01-042-0/+23
|
* Missing return type means unit, not unknownFlorian Diebold2018-12-291-2/+2
|
* Implement type variablesFlorian Diebold2018-12-295-7/+48
| | | | | | | | | 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.
* introduce known namesAleksey Kladov2018-12-271-20/+22
|
* Implement reference / pointer typesFlorian Diebold2018-12-253-2/+47
| | | | | - parse them - infer types of & and * expressions
* Type field accessesFlorian Diebold2018-12-251-2/+4
|
* Infer result of struct literals, and recurse into their child expressionsFlorian Diebold2018-12-252-5/+9
|
* Do name resolution by namespace (types/values)Florian Diebold2018-12-251-2/+2
|
* Add basic HIR and types for structs/enumsFlorian Diebold2018-12-252-0/+33
|
* Change inference tests to have one per fileFlorian Diebold2018-12-246-55/+92
|
* Rename a variable for consistencyFlorian Diebold2018-12-241-1/+1
|
* Type the return values of call expressionsFlorian Diebold2018-12-231-2/+2
|
* Resolve paths to defs (functions currently) during type inferenceFlorian Diebold2018-12-233-1/+25
|
* Make let statements kind of workFlorian Diebold2018-12-232-0/+12
|
* CleanupFlorian Diebold2018-12-231-17/+22
|
* Add testing infrastructure for type inferenceFlorian Diebold2018-12-233-23/+63
| | | | - move dir_tests to test_utils for that.
* Parse integer / float typesFlorian Diebold2018-12-231-0/+32
|
* Add beginnings of type infrastructureFlorian Diebold2018-12-232-0/+143