aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir
Commit message (Collapse)AuthorAgeFilesLines
* minorAleksey Kladov2019-01-081-4/+4
|
* move enum to code_model_apiAleksey Kladov2019-01-083-29/+26
|
* move stuct to code_model_apiAleksey Kladov2019-01-083-22/+27
|
* Merge #455bors[bot]2019-01-082-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 resolutionFlorian Diebold2019-01-082-16/+62
| |
* | convert some if-lets to matchAleksey Kladov2019-01-081-12/+9
| |
* | itroduce trait for ast tokensAleksey Kladov2019-01-082-3/+3
| |
* | migrate ra_analysis to new rowanAleksey Kladov2019-01-081-2/+2
| |
* | migrate ra_hir to rowan 2.0Aleksey Kladov2019-01-0817-192/+195
| |
* | Process explicit type hints for str, bool and charMarcus Klaas de Vries2019-01-074-5/+18
| |
* | Tidy up binary operator type inference; add test fileMarcus Klaas de Vries2019-01-072-44/+87
| |
* | Implement type inference for more binary operatorsMarcus Klaas de Vries2019-01-073-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 ASTMarcus Klaas de Vries2019-01-071-0/+1
|/
* Implement autoderef for field accessesFlorian Diebold2019-01-075-24/+147
|
* if let -> matchFlorian Diebold2019-01-071-8/+6
|
* Improve types for node_expr / node_patFlorian Diebold2019-01-061-5/+5
|
* Introduce ArenaMapFlorian Diebold2019-01-063-25/+25
|
* 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-068-336/+291
| | | | | Now we can reuse the type inference inside a function when typing whitespace etc. :)
* Merge #440bors[bot]2019-01-063-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 operatorsMarcus Klaas de Vries2019-01-063-17/+67
| | | | | | | | | | Also try to infer its subexpressions and set type expectations whenever possible.
| * Implement type inference for boolean operatorsMarcus Klaas de Vries2019-01-053-2/+38
| |
* | kill module sourceAleksey Kladov2019-01-067-193/+155
| |
* | move submodule computationt to module_treeAleksey Kladov2019-01-064-53/+39
| |
* | fix the testAleksey Kladov2019-01-061-2/+2
| |
* | fix after rebaseAleksey Kladov2019-01-061-1/+2
| |
* | flatten module structureAleksey Kladov2019-01-0613-436/+431
| |
* | adjust commentsAleksey Kladov2019-01-061-5/+7
| |
* | split module source into decl/definAleksey Kladov2019-01-064-28/+102
| |
* | kill old moduleAleksey Kladov2019-01-067-233/+66
| |
* | add parent & resolve_pathAleksey Kladov2019-01-064-5/+67
| |
* | make source cancelableAleksey Kladov2019-01-061-2/+2
| |
* | make deps cancelableAleksey Kladov2019-01-062-3/+3
| |
* | fix testsAleksey Kladov2019-01-063-4/+29
| |
* | switch source-binders to ModuleAleksey Kladov2019-01-062-9/+20
| |
* | Start code_model::ModuleAleksey Kladov2019-01-064-7/+83
| |
* | move crate to code_model_apiAleksey Kladov2019-01-063-21/+34
| |
* | Add fn signature queryFlorian Diebold2019-01-067-7/+85
| |
* | Various small code review improvementsFlorian Diebold2019-01-053-26/+27
| |
* | Make FnScopes use hir::ExprFlorian Diebold2019-01-058-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 machineryFlorian Diebold2019-01-055-0/+528
| |
* | Add test for invalidation of inferred types when typing inside functionFlorian Diebold2019-01-052-0/+58
|/ | | | This currently fails, but should work once we have hir::Expr.
* Merge #370bors[bot]2019-01-0413-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 wellFlorian Diebold2019-01-042-2/+2
| |
| * Do impl collection per module, not per crateFlorian Diebold2019-01-043-33/+32
| |
| * Rename ImplBlock::target -> target_type, and add target_trait alreadyFlorian Diebold2019-01-042-7/+17
| |
| * Refactor a bitFlorian Diebold2019-01-041-58/+62
| |
| * Resolve the Self typeFlorian Diebold2019-01-043-24/+71
| |
| * Resolve the self parameter during type inferenceFlorian Diebold2019-01-043-4/+19
| |
| * Type the self parameterFlorian Diebold2019-01-043-7/+37
| |