aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add HIR Expr machineryFlorian Diebold2019-01-059-4/+542
|
* 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 #438bors[bot]2019-01-054-89/+76
|\ | | | | | | | | | | | | | | 438: show types in local variable hovers r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * fix testsAleksey Kladov2019-01-053-79/+49
| |
| * show types in local variable hoversAleksey Kladov2019-01-052-10/+27
| |
* | Merge #437bors[bot]2019-01-056-212/+138
|\| | | | | | | | | | | | | | | 437: refactor goto defenition r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * kill approximatelly_resolve_symbolAleksey Kladov2019-01-054-90/+11
| |
| * inline goto_defention testsAleksey Kladov2019-01-053-66/+58
| |
| * move goto_defenition to a separate fileAleksey Kladov2019-01-053-11/+91
| |
| * introduce separate goto_defenitionAleksey Kladov2019-01-052-3/+9
| |
| * kill accidentally added fileAleksey Kladov2019-01-051-73/+0
|/
* Merge #436bors[bot]2019-01-053-1/+13
|\ | | | | | | | | | | | | | | 436: Allow user to set path to ra_lsp_server in vscode settings r=matklad a=gentoo90 Co-authored-by: gentoo90 <[email protected]>
| * Allow user to set path to ra_lsp_server in vscode settingsgentoo902019-01-053-1/+13
| |
* | Merge #435bors[bot]2019-01-054-161/+204
|\ \ | |/ |/| | | | | | | | | | | 435: Refactor hover r=matklad a=matklad Primaraly this moves `hover` to `ra_analysis`, so that we finally can write tests for it! Co-authored-by: Aleksey Kladov <[email protected]>
| * move typeof to hoverAleksey Kladov2019-01-053-18/+18
| |
| * fold doc_comment into hoverAleksey Kladov2019-01-053-109/+110
| |
| * move hover implementation to ra_analysisAleksey Kladov2019-01-054-67/+83
| |
| * wipAleksey Kladov2019-01-051-0/+26
|/
* Merge #414bors[bot]2019-01-051-2/+25
|\ | | | | | | | | | | | | | | 414: textDocument/hover returns both type name and doc_text r=matklad a=h-michael implement #389 Co-authored-by: Hirokazu Hata <[email protected]>
| * Use both type_of and doc_text_forHirokazu Hata2019-01-051-14/+25
| |
| * Return type name when doc_text_for returns nothingHirokazu Hata2019-01-031-0/+12
| |
* | Merge #434bors[bot]2019-01-052-2/+48
|\ \ | | | | | | | | | | | | | | | | | | | | | 434: change visibility can change pub to pub(crate) r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | change visibility can change pub to pub(crate)Aleksey Kladov2019-01-052-2/+48
| | |
* | | Merge #432bors[bot]2019-01-051-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 432: Fix link in architecture.md r=matklad a=detrumi Co-authored-by: Wilco Kusee <[email protected]>
| * | | Fix link in architecture.mdWilco Kusee2019-01-051-1/+1
| | | |
* | | | Merge #431bors[bot]2019-01-051-1/+2
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | 431: fixes for LSP file system operations r=matklad a=vemoo fixes for #131 Co-authored-by: Bernardo <[email protected]>
| * | | fix open of created or renamed fileBernardo2019-01-051-1/+2
| |/ /
* | | Merge #430bors[bot]2019-01-054-0/+126
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 430: split import assist r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | split import assistAleksey Kladov2019-01-054-0/+126
|/ /
* | Merge #427bors[bot]2019-01-051-2/+58
|\ \ | | | | | | | | | | | | | | | | | | | | | 427: Remove extra space when joining lines in use items r=matklad a=alanhdu Fixes #423. Co-authored-by: Alan Du <[email protected]>
| * | Fix join_lines use_items right w/ and w/o commaAlan Du2019-01-051-3/+22
| | |
| * | Address join lines use items right }Alan Du2019-01-051-3/+21
| | |
| * | Remove extra space when joining lines in use itemsAlan Du2019-01-041-0/+19
| | |
* | | :arrow_up: rowanAleksey Kladov2019-01-041-27/+4
| | |
* | | Merge #370bors[bot]2019-01-0426-62/+548
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-043-3/+3
| | | |
| * | | 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
| | | |
| * | | Rename traits::impl_item -> impl_block as well, as well as the testsFlorian Diebold2019-01-046-4/+4
| | | |
| * | | Add a test for self field completionFlorian Diebold2019-01-043-5/+25
| | | | | | | | | | | | | | | | Needed to add a default crate graph in the analysis for that.
| * | | 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-046-9/+116
| | | |
| * | | Add HIR for impl blocksFlorian Diebold2019-01-0411-8/+269
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we need to be able to go from def to containing impl block, as well as the other direction, and to find all impls for a certain type, a design similar to the one for modules, where we collect all impls for the whole crate and keep them in an arena, seemed fitting. The ImplBlock type, which provides the public interface, then consists only of an Arc to the arena containing all impls, and the index into it.
| * | | Add test for self type inferenceFlorian Diebold2019-01-042-0/+23
| | | |
* | | | Merge #428bors[bot]2019-01-045-65/+76
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 428: :arrow_up: salsa r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | :arrow_up: salsaAleksey Kladov2019-01-045-65/+76
|/ / / /
* | / / Merge #426bors[bot]2019-01-0424-52/+51
|\| | | | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | 426: Rename ImplItem to ImplBlock r=flodiebold a=flodiebold rustc uses the name ImplItem for items in impls, not the impl {} block itself, which could lead to confusion. Extracted from #370. Co-authored-by: Florian Diebold <[email protected]>
| * | Rename ImplItem to ImplBlockFlorian Diebold2019-01-0424-52/+51
|/ / | | | | | | | | rustc uses the name ImplItem for items in impls, not the impl {} block itself, which could lead to confusion.