Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | minor | Aleksey Kladov | 2019-01-08 | 1 | -4/+4 | |
| | ||||||
* | move enum to code_model_api | Aleksey Kladov | 2019-01-08 | 3 | -29/+26 | |
| | ||||||
* | move stuct to code_model_api | Aleksey Kladov | 2019-01-08 | 3 | -22/+27 | |
| | ||||||
* | Merge #455 | bors[bot] | 2019-01-08 | 2 | -16/+62 | |
|\ | | | | | | | | | | | | | | | 455: Import fixpoint loop for name resolution r=matklad a=flodiebold This implements reexports, so only the glob import part of #231 remains. Co-authored-by: Florian Diebold <[email protected]> | |||||
| * | Import fixpoint loop for name resolution | Florian Diebold | 2019-01-08 | 2 | -16/+62 | |
| | | ||||||
* | | convert some if-lets to match | Aleksey Kladov | 2019-01-08 | 1 | -12/+9 | |
| | | ||||||
* | | itroduce trait for ast tokens | Aleksey Kladov | 2019-01-08 | 2 | -3/+3 | |
| | | ||||||
* | | migrate ra_analysis to new rowan | Aleksey Kladov | 2019-01-08 | 1 | -2/+2 | |
| | | ||||||
* | | migrate ra_hir to rowan 2.0 | Aleksey Kladov | 2019-01-08 | 17 | -192/+195 | |
| | | ||||||
* | | Process explicit type hints for str, bool and char | Marcus Klaas de Vries | 2019-01-07 | 4 | -5/+18 | |
| | | ||||||
* | | Tidy up binary operator type inference; add test file | Marcus Klaas de Vries | 2019-01-07 | 2 | -44/+87 | |
| | | ||||||
* | | Implement type inference for more binary operators | Marcus Klaas de Vries | 2019-01-07 | 3 | -47/+82 | |
| | | | | | | | | | | Mostly just for primitive numeric types such as u32 and f64. Not yet a general solution using trait resolution. | |||||
* | | Add remaining binary operations to AST | Marcus Klaas de Vries | 2019-01-07 | 1 | -0/+1 | |
|/ | ||||||
* | Implement autoderef for field accesses | Florian Diebold | 2019-01-07 | 5 | -24/+147 | |
| | ||||||
* | if let -> match | Florian Diebold | 2019-01-07 | 1 | -8/+6 | |
| | ||||||
* | Improve types for node_expr / node_pat | Florian Diebold | 2019-01-06 | 1 | -5/+5 | |
| | ||||||
* | Introduce ArenaMap | Florian Diebold | 2019-01-06 | 3 | -25/+25 | |
| | ||||||
* | 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 | 8 | -336/+291 | |
| | | | | | Now we can reuse the type inference inside a function when typing whitespace etc. :) | |||||
* | Merge #440 | bors[bot] | 2019-01-06 | 3 | -2/+88 | |
|\ | | | | | | | | | | | | | | | | | | | 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 | 3 | -17/+67 | |
| | | | | | | | | | | 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 | 3 | -2/+38 | |
| | | ||||||
* | | kill module source | Aleksey Kladov | 2019-01-06 | 7 | -193/+155 | |
| | | ||||||
* | | move submodule computationt to module_tree | Aleksey Kladov | 2019-01-06 | 4 | -53/+39 | |
| | | ||||||
* | | fix the test | Aleksey Kladov | 2019-01-06 | 1 | -2/+2 | |
| | | ||||||
* | | fix after rebase | Aleksey Kladov | 2019-01-06 | 1 | -1/+2 | |
| | | ||||||
* | | flatten module structure | Aleksey Kladov | 2019-01-06 | 13 | -436/+431 | |
| | | ||||||
* | | adjust comments | Aleksey Kladov | 2019-01-06 | 1 | -5/+7 | |
| | | ||||||
* | | split module source into decl/defin | Aleksey Kladov | 2019-01-06 | 4 | -28/+102 | |
| | | ||||||
* | | kill old module | Aleksey Kladov | 2019-01-06 | 7 | -233/+66 | |
| | | ||||||
* | | add parent & resolve_path | Aleksey Kladov | 2019-01-06 | 4 | -5/+67 | |
| | | ||||||
* | | make source cancelable | Aleksey Kladov | 2019-01-06 | 1 | -2/+2 | |
| | | ||||||
* | | make deps cancelable | Aleksey Kladov | 2019-01-06 | 2 | -3/+3 | |
| | | ||||||
* | | fix tests | Aleksey Kladov | 2019-01-06 | 3 | -4/+29 | |
| | | ||||||
* | | switch source-binders to Module | Aleksey Kladov | 2019-01-06 | 2 | -9/+20 | |
| | | ||||||
* | | Start code_model::Module | Aleksey Kladov | 2019-01-06 | 4 | -7/+83 | |
| | | ||||||
* | | move crate to code_model_api | Aleksey Kladov | 2019-01-06 | 3 | -21/+34 | |
| | | ||||||
* | | Add fn signature query | Florian Diebold | 2019-01-06 | 7 | -7/+85 | |
| | | ||||||
* | | Various small code review improvements | Florian Diebold | 2019-01-05 | 3 | -26/+27 | |
| | | ||||||
* | | Make FnScopes use hir::Expr | Florian Diebold | 2019-01-05 | 8 | -282/+514 | |
| | | | | | | | | | | | | This was a bit complicated. I've added a wrapper type for now that does the LocalSyntaxPtr <-> ExprId translation; we might want to get rid of that or give it a nicer interface. | |||||
* | | Add HIR Expr machinery | Florian Diebold | 2019-01-05 | 5 | -0/+528 | |
| | | ||||||
* | | Add test for invalidation of inferred types when typing inside function | Florian Diebold | 2019-01-05 | 2 | -0/+58 | |
|/ | | | | This currently fails, but should work once we have hir::Expr. | |||||
* | Merge #370 | bors[bot] | 2019-01-04 | 13 | -48/+396 | |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | 370: Self params & type r=matklad a=flodiebold This implements type inference for `self`, so field completion for methods taking `self` works now. - rename `IMPL_ITEM` to `IMPL_BLOCK` -- rustc calls the methods etc. inside an impl `ImplItem`s, and the impl itself doesn't define an item, so I thought this name was clearer. - add HIR for impl blocks -- we collect all impls in a crate at once, so we can go from methods to containing impls, and since we will later also need to find all impls for a certain type (which may be anywhere in the crate, I think?). We could be more lazy here, but I don't know if it's worth the complexity. - resolve `self` and `Self` during type inference - refactor a bit in ty.rs as well Co-authored-by: Florian Diebold <[email protected]> | |||||
| * | Rename ImplsInCrateQuery as well | Florian Diebold | 2019-01-04 | 2 | -2/+2 | |
| | | ||||||
| * | Do impl collection per module, not per crate | Florian Diebold | 2019-01-04 | 3 | -33/+32 | |
| | | ||||||
| * | Rename ImplBlock::target -> target_type, and add target_trait already | Florian Diebold | 2019-01-04 | 2 | -7/+17 | |
| | | ||||||
| * | Refactor a bit | Florian Diebold | 2019-01-04 | 1 | -58/+62 | |
| | | ||||||
| * | Resolve the Self type | Florian Diebold | 2019-01-04 | 3 | -24/+71 | |
| | | ||||||
| * | Resolve the self parameter during type inference | Florian Diebold | 2019-01-04 | 3 | -4/+19 | |
| | | ||||||
| * | Type the self parameter | Florian Diebold | 2019-01-04 | 3 | -7/+37 | |
| | |