Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Use HIR Expr for type inference | Florian Diebold | 2019-01-06 | 6 | -17/+35 | |
| | | | | | Now we can reuse the type inference inside a function when typing whitespace etc. :) | |||||
* | Merge #440 | bors[bot] | 2019-01-06 | 2 | -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 operators | Marcus Klaas de Vries | 2019-01-06 | 2 | -10/+38 | |
| | | | | | | | | | | Also try to infer its subexpressions and set type expectations whenever possible. | |||||
| * | Implement type inference for boolean operators | Marcus Klaas de Vries | 2019-01-05 | 2 | -0/+27 | |
| | | ||||||
* | | Add test for invalidation of inferred types when typing inside function | Florian Diebold | 2019-01-05 | 1 | -0/+44 | |
|/ | | | | This currently fails, but should work once we have hir::Expr. | |||||
* | Resolve the Self type | Florian Diebold | 2019-01-04 | 1 | -2/+2 | |
| | ||||||
* | Resolve the self parameter during type inference | Florian Diebold | 2019-01-04 | 1 | -2/+2 | |
| | ||||||
* | Type the self parameter | Florian Diebold | 2019-01-04 | 1 | -0/+2 | |
| | ||||||
* | Add test for self type inference | Florian Diebold | 2019-01-04 | 2 | -0/+23 | |
| | ||||||
* | Missing return type means unit, not unknown | Florian Diebold | 2018-12-29 | 1 | -2/+2 | |
| | ||||||
* | Implement type variables | Florian Diebold | 2018-12-29 | 5 | -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 names | Aleksey Kladov | 2018-12-27 | 1 | -20/+22 | |
| | ||||||
* | Implement reference / pointer types | Florian Diebold | 2018-12-25 | 3 | -2/+47 | |
| | | | | | - parse them - infer types of & and * expressions | |||||
* | Type field accesses | Florian Diebold | 2018-12-25 | 1 | -2/+4 | |
| | ||||||
* | Infer result of struct literals, and recurse into their child expressions | Florian Diebold | 2018-12-25 | 2 | -5/+9 | |
| | ||||||
* | Do name resolution by namespace (types/values) | Florian Diebold | 2018-12-25 | 1 | -2/+2 | |
| | ||||||
* | Add basic HIR and types for structs/enums | Florian Diebold | 2018-12-25 | 2 | -0/+33 | |
| | ||||||
* | Change inference tests to have one per file | Florian Diebold | 2018-12-24 | 6 | -55/+92 | |
| | ||||||
* | Rename a variable for consistency | Florian Diebold | 2018-12-24 | 1 | -1/+1 | |
| | ||||||
* | Type the return values of call expressions | Florian Diebold | 2018-12-23 | 1 | -2/+2 | |
| | ||||||
* | Resolve paths to defs (functions currently) during type inference | Florian Diebold | 2018-12-23 | 3 | -1/+25 | |
| | ||||||
* | Make let statements kind of work | Florian Diebold | 2018-12-23 | 2 | -0/+12 | |
| | ||||||
* | Cleanup | Florian Diebold | 2018-12-23 | 1 | -17/+22 | |
| | ||||||
* | Add testing infrastructure for type inference | Florian Diebold | 2018-12-23 | 3 | -23/+63 | |
| | | | | - move dir_tests to test_utils for that. | |||||
* | Parse integer / float types | Florian Diebold | 2018-12-23 | 1 | -0/+32 | |
| | ||||||
* | Add beginnings of type infrastructure | Florian Diebold | 2018-12-23 | 2 | -0/+143 | |