Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Add Ty::Array to walk_mut | Hirokazu Hata | 2019-01-16 | 1 | -32/+32 | |
| | ||||||
* | Fix test case invalid syntax | Hirokazu Hata | 2019-01-16 | 2 | -47/+47 | |
| | ||||||
* | Fix infer array test | Hirokazu Hata | 2019-01-16 | 2 | -40/+57 | |
| | ||||||
* | Add infer array test | Hirokazu Hata | 2019-01-16 | 2 | -0/+61 | |
| | ||||||
* | Implement rudimentary type inference for unary operators | Marcus Klaas de Vries | 2019-01-15 | 2 | -0/+51 | |
| | ||||||
* | remove Cancelable from type inference | Aleksey Kladov | 2019-01-15 | 2 | -23/+20 | |
| | ||||||
* | remove Cancelable from Ty | Aleksey Kladov | 2019-01-15 | 1 | -1/+1 | |
| | ||||||
* | remove Cancelable from ids | Aleksey Kladov | 2019-01-15 | 1 | -5/+5 | |
| | ||||||
* | remove Cancelable from fn_scopes | Aleksey Kladov | 2019-01-15 | 1 | -1/+1 | |
| | ||||||
* | remove Cancelable from Crate API | Aleksey Kladov | 2019-01-15 | 1 | -1/+1 | |
| | ||||||
* | remove Cancelable from Module API, part 2 | Aleksey Kladov | 2019-01-15 | 1 | -1/+1 | |
| | ||||||
* | remove Cancelable from source binders | Aleksey Kladov | 2019-01-15 | 1 | -6/+2 | |
| | ||||||
* | Fix type inference for raw (byte) strings | Marcus Klaas de Vries | 2019-01-14 | 2 | -4/+12 | |
| | ||||||
* | Fixup tests | Marcus Klaas de Vries | 2019-01-14 | 4 | -56/+56 | |
| | ||||||
* | don't try to treat arrays and tuples as literals | Marcus Klaas de Vries | 2019-01-14 | 3 | -10/+6 | |
| | ||||||
* | Use type variables to determine exact type for ambiguous numeric literals | Marcus Klaas de Vries | 2019-01-14 | 4 | -7/+9 | |
| | ||||||
* | Try implementing integer type inference (WIP) | Marcus Klaas de Vries | 2019-01-14 | 5 | -6/+56 | |
| | ||||||
* | Implement type inference for literals (WIP) | Marcus Klaas de Vries | 2019-01-14 | 3 | -1/+31 | |
| | ||||||
* | Fix tuple test case | Hirokazu Hata | 2019-01-13 | 2 | -6/+35 | |
| | ||||||
* | Add infer tuple test | Hirokazu Hata | 2019-01-13 | 2 | -0/+17 | |
| | ||||||
* | args -> params | Florian Diebold | 2019-01-12 | 1 | -1/+1 | |
| | ||||||
* | Small improvements from review comments | Florian Diebold | 2019-01-12 | 1 | -15/+15 | |
| | ||||||
* | Implement basic inherent method resolution | Florian Diebold | 2019-01-12 | 3 | -0/+208 | |
| | ||||||
* | Fix assertion error in unification (hopefully) | Florian Diebold | 2019-01-11 | 2 | -0/+17 | |
| | | | | | | | Currently, all types that we handle during inference need to be resolved as far as possible at the time. It's maybe too brittle of an invariant; I need to think how we can do this better. This should fix #484 though, I hope (if it's the same case as I managed to reproduce). | |||||
* | Implement type inference for enum variants | Marcus Klaas de Vries | 2019-01-10 | 2 | -0/+20 | |
| | ||||||
* | nicer trailing comma handling in types | Aleksey Kladov | 2019-01-09 | 2 | -2/+2 | |
| | ||||||
* | Fix typos in ARCHITECTURE.md and a number of crates | Marcus Klaas de Vries | 2019-01-09 | 2 | -2/+2 | |
| | | | | specifically: gen_lsp_server, ra_arena, ra_cli, ra_db, ra_hir | |||||
* | Process explicit type hints for str, bool and char | Marcus Klaas de Vries | 2019-01-07 | 2 | -4/+4 | |
| | ||||||
* | Tidy up binary operator type inference; add test file | Marcus Klaas de Vries | 2019-01-07 | 1 | -0/+46 | |
| | ||||||
* | Implement type inference for more binary operators | Marcus Klaas de Vries | 2019-01-07 | 2 | -36/+8 | |
| | | | | | Mostly just for primitive numeric types such as u32 and f64. Not yet a general solution using trait resolution. | |||||
* | Implement autoderef for field accesses | Florian Diebold | 2019-01-07 | 3 | -1/+96 | |
| | ||||||
* | if let -> match | Florian Diebold | 2019-01-07 | 1 | -8/+6 | |
| | ||||||
* | Introduce ArenaMap | Florian Diebold | 2019-01-06 | 1 | -4/+4 | |
| | ||||||
* | Sort ranges in type inference tests | Florian Diebold | 2019-01-06 | 9 | -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 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 | |
| |