aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Merge #425bors[bot]2019-01-0415-187/+167
|\ | | | | | | | | | | | | | | 425: remove id arena r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * remove id arenaAleksey Kladov2019-01-048-94/+26
| |
| * extract area to a crateAleksey Kladov2019-01-049-94/+142
|/
* Merge #424bors[bot]2019-01-045-2/+50
|\ | | | | | | | | | | | | | | 424: remove non-doc comments from doc comments r=matklad a=csmoe Closes #357 Co-authored-by: csmoe <[email protected]>
| * add mod doc comments test in astcsmoe2019-01-041-0/+13
| |
| * parse doc comment for itemscsmoe2019-01-043-2/+15
| |
| * add mod doc comment testcsmoe2019-01-042-0/+22
|/
* Merge #391bors[bot]2019-01-045-59/+117
|\ | | | | | | | | | | | | | | 391: docing parser methods r=csmoe a=csmoe Co-authored-by: csmoe <[email protected]>
| * consume trivias for type/const defcsmoe2019-01-041-2/+1
| |
| * doc parsing eventscsmoe2019-01-044-43/+71
| |
| * doc parser inputcsmoe2019-01-012-10/+30
| |
| * docing parser methodscsmoe2018-12-314-12/+23
| |
* | Merge #421bors[bot]2019-01-039-465/+549
|\ \ | | | | | | | | | | | | | | | | | | | | | 421: Index macros r=matklad a=matklad So, this is pretty cool! We now index items which are the result of macro expansion! (of a single currently hard-coded macro). So, workspace symbols can now be used to navigate to `HirDatabase`, for example Co-authored-by: Aleksey Kladov <[email protected]>
| * | index stuff produced by macrosAleksey Kladov2019-01-037-453/+523
| | |
| * | construct index from symbols directlyAleksey Kladov2019-01-033-13/+27
|/ /
* | Merge #420bors[bot]2019-01-033-13/+5
|\ \ | | | | | | | | | | | | | | | | | | | | | 420: unit-tests r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | don't create many compilation units for testsAleksey Kladov2019-01-033-13/+5
|/ /
* | Merge #419bors[bot]2019-01-033-35/+34
|\ \ | | | | | | | | | | | | | | | | | | | | | 419: file-id-to-symbol r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | embed file_id into FileSymbolAleksey Kladov2019-01-033-35/+34
| | |
* | | Merge #418bors[bot]2019-01-031-18/+37
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 418: field-vis r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | add pub(crate) works for named fieldsAleksey Kladov2019-01-031-18/+37
| | |
* | | Merge #417bors[bot]2019-01-031-1/+2
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 417: travis-compile r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | dont build PRs on windowsAleksey Kladov2019-01-031-1/+1
| | |
| * | measure compile-time separately on travisAleksey Kladov2019-01-031-0/+1
| | |
* | | Merge #416bors[bot]2019-01-0312-214/+286
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 416: assist-builder r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | fix the testAleksey Kladov2019-01-032-6/+1
| | | |
| * | | more enterprisey assists APIAleksey Kladov2019-01-0311-210/+287
| |/ /
* | | Merge #415bors[bot]2019-01-034-78/+61
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 415: use LSP file system operations r=matklad a=vemoo implements #131 I've replaced `source_file_edits` and `file_system_edits` with `workspace_edit` because [`WorkspacEdit`](https://docs.rs/languageserver-types/0.53.1/languageserver_types/struct.WorkspaceEdit.html) can represent both. I only use `document_changes` because `changes` cannot represent file system operations. But if the client doesn't have the `workspace.workspaceEdit.resourceOperations` capability `WorkspaceEdit` cannot replace the current `FileSystemEdit`. Can we assume that the client will support it? I also adapted the extension code to make use of the new response type, but only for vscode, i don't know if changes have to be made for the emacs part. Co-authored-by: Bernardo <[email protected]>
| * | fix testsBernardo2019-01-031-9/+14
| | |