aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Merge #8997bors[bot]2021-05-2712-241/+351
|\ | | | | | | | | | | | | | | | | | | | | | | 8997: internal: stop expanding UseTrees during ItemTree lowering r=jonas-schievink a=jonas-schievink Closes https://github.com/rust-analyzer/rust-analyzer/issues/8908 Messy diff, but `ItemTree` lowering got simpler, since we now have a strict 1-to-1 mapping between `ast::Item` and `ModItem`. The most messy part is mapping a single `UseTree` back to its `ast::UseTree` counterpart for diagnostics, but I think the ad-hoc source map built during lowering does the job. Co-authored-by: Jonas Schievink <[email protected]>
| * Drop `ignore` from doctestsJonas Schievink2021-05-271-3/+3
| |
| * Reduce memory usage a bitJonas Schievink2021-05-262-9/+14
| |
| * Clean up ItemTree lowering now that it's 1:1Jonas Schievink2021-05-261-53/+26
| |
| * Stop expanding UseTrees during ItemTree loweringJonas Schievink2021-05-2612-188/+320
| |
* | Merge #9005bors[bot]2021-05-273-6/+76
|\ \ | | | | | | | | | | | | | | | | | | | | | 9005: internal: Document semantic token tags r=matklad a=Veykril Closes #6457 Co-authored-by: Lukas Wirth <[email protected]>
| * | Document semantic token tagsLukas Wirth2021-05-263-6/+76
| | |
* | | simplifyLukas Wirth2021-05-277-36/+37
| | |
* | | simplifyLukas Wirth2021-05-272-18/+10
| | |
* | | Collapse more CompletionContext booleans into enumsLukas Wirth2021-05-276-98/+133
| | |
* | | Merge #9017bors[bot]2021-05-271-11/+8
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9017: internal: Reduce the number of traits passed through chalk during applicable trait lookup r=SomeoneToIgnore a=SomeoneToIgnore Inherent traits can be omitted before trait solving, presumably slightly helping https://github.com/rust-analyzer/rust-analyzer/issues/7542 and slightly simplifying the code. Co-authored-by: Kirill Bulatov <[email protected]>
| * | | Exclude inherent traits more eagerlyKirill Bulatov2021-05-271-11/+8
| | | |
* | | | Set `record_pat_syntax` more precisely in CompletionContextLukas Wirth2021-05-263-41/+58
|/ / /
* | | Merge #9015bors[bot]2021-05-264-80/+93
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9015: Merge pattern completion related bools into an enum r=Veykril a=Veykril The two bools can never both be set so this is basically just a tri-state enum. bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | Merge pattern completion related bools into an enumLukas Wirth2021-05-264-80/+93
| | | |
* | | | Merge #9012bors[bot]2021-05-261-21/+29
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 9012: feat: add tab stops for keyword completions r=matklad a=eduardocanellas Add tab stops for all the keywords that I judged fit. I also introduced some line breaks and spaces, following the pattern I saw in the `postfix` module. Co-authored-by: Eduardo Canellas <[email protected]>
| * | | feat: add tab stops for keyword completionsEduardo Canellas2021-05-261-21/+29
| | | |
* | | | simplifyLukas Wirth2021-05-264-68/+44
|/ / /
* | | Merge #9008bors[bot]2021-05-261-0/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9008: fix: remove undesired completions from trait/impl blocks r=Veykril a=eduardocanellas Related to #8518 Co-authored-by: Eduardo Canellas <[email protected]>
| * | | fix: remove undesired completions from trait/impl blocksEduardo Canellas2021-05-261-0/+2
| |/ /
* | | Merge #9007bors[bot]2021-05-267-27/+22
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 9007: Internal: `clippy::redundant_clone` fixes r=lnicola a=lnicola bors r+ Co-authored-by: Laurențiu Nicola <[email protected]>
| * | clippy::redundant_clone fixesLaurențiu Nicola2021-05-267-27/+22
| | |
* | | Merge #9003bors[bot]2021-05-262-0/+26
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9003: minor: Document semantic token modifiers r=Veykril a=Veykril Part of #6457 Co-authored-by: Lukas Wirth <[email protected]>
| * | | Document semantic token modifiersLukas Wirth2021-05-262-0/+26
| | | |
* | | | Merge #9002bors[bot]2021-05-261-35/+31
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 9002: Move annotations below item attributes r=Veykril a=Veykril This moves annotations/code lenses below attributes in items, bringing them inline with functions where this is already the case. This is done by changing the annotations covering range to just the name node's range which is also more inline with what the lsp expects which is that the range should ideally only cover a single line. Fixes https://github.com/rust-analyzer/rust-analyzer/issues/9000 bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | | Move annotations below item attributesLukas Wirth2021-05-261-35/+31
| |/ / /
* | | | Merge #8996bors[bot]2021-05-263-8/+25
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | 8996: Fix bug where library functions were not highlighted as such r=arzg a=arzg Sorry about forgetting to test this in my last PR. Co-authored-by: Aramis Razzaghipour <[email protected]>
| * | | Fix bug where library functions were not highlighted as suchAramis Razzaghipour2021-05-263-8/+25
| | |/ | |/|
* | | Merge #8973bors[bot]2021-05-2524-676/+693
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8973: internal: move diagnostics to hir r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | internal: move diagnostics to hirAleksey Kladov2021-05-2524-676/+693
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The idea here is to eventually get rid of `dyn Diagnostic` and `DiagnosticSink` infrastructure altogether, and just have a `enum hir::Diagnostic` instead. The problem with `dyn Diagnostic` is that it is defined in the lowest level of the stack (hir_expand), but is used by the highest level (ide). As a first step, we free hir_expand and hir_def from `dyn Diagnostic` and kick the can up to `hir_ty`, as an intermediate state. The plan is then to move DiagnosticSink similarly to the hir crate, and, as final third step, remove its usage from the ide. One currently unsolved problem is testing. You can notice that the test which checks precise diagnostic ranges, unresolved_import_in_use_tree, was moved to the ide layer. Logically, only IDE should have the infra to render a specific range. At the same time, the range is determined with the data produced in hir_def and hir crates, so this layering is rather unfortunate. Working on hir_def shouldn't require compiling `ide` for testing.
* | | | Merge #8993bors[bot]2021-05-252-11/+5
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8993: fix: don't show pd/ppd completions where it shouldn't be r=flodiebold a=eduardocanellas Closes #8992 Co-authored-by: Eduardo Canellas <[email protected]>
| * | | | fix: don't show pd/ppd completions where it shouldn't beEduardo Canellas2021-05-252-11/+5
| | | | |
* | | | | Merge #8994bors[bot]2021-05-251-1/+5
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8994: Check for subdirs in vfs loader exclusions. r=matklad a=ammkrn The current logic used to transfer global_excludes into vfs exclusions only transfers global_excludes that are the parent of an item in dirs.include. This commit additionally adds an item from global_exclude to the vfs exclusions if the global_exclude is a child of an included item. Co-authored-by: ammkrn <[email protected]>
| * | | | Check for subdirs in vfs loader exclusions.ammkrn2021-05-251-1/+5
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current logic used to transfer global_excludes into vfs exclusions only transfers global_excludes that are the parent of an item in dirs.include. This commit additionally adds an item from global_exclude to the vfs exclusions if the global_exclude is a child of an included item.
* / / / Consider trait to be in scope for trait-implLukas Wirth2021-05-253-13/+57
|/ / /
* | | Merge #8990bors[bot]2021-05-251-2/+26
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8990: feat: Also do goto implementation on assoc consts r=lnicola a=lf- I forgot to put this into #8988, sorry. Goto implementation on a const on the trait will go to the implementations with their respective definitions of the const, if present. Co-authored-by: Jade <[email protected]>
| * | | Also do goto implementation on assoc constsJade2021-05-251-2/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I forgot to put this into #8988, sorry. Goto implementation on a const on the trait will go to the implementations with their respective definitions of the const, if present.
* | | | Merge #8987bors[bot]2021-05-253-16/+43
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 8987: Fix lowering of FnOnce() without return type r=flodiebold a=flodiebold This should result in an implicit `-> ()`, not leaving out the binding. Co-authored-by: Florian Diebold <[email protected]>
| * | | Hide `-> ()` in Fn traitsFlorian Diebold2021-05-252-5/+7
| | | |
| * | | Fix lowering of FnOnce() without return typeFlorian Diebold2021-05-252-17/+42
| | | | | | | | | | | | | | | | This should result in an implicit `-> ()`, not leaving out the binding.
* | | | Merge #8988bors[bot]2021-05-251-1/+45
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8988: feat: go to implementation on trait functions r=matklad a=lf- Fix #8537. GIF: ![output](https://user-images.githubusercontent.com/6652840/119501981-45a45c00-bd1e-11eb-8336-9145f2888643.gif) Co-authored-by: Jade <[email protected]>
| * | | | feat: go to implementation on trait functionsJade2021-05-251-1/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix #8537. GIF: https://user-images.githubusercontent.com/6652840/119501981-45a45c00-bd1e-11eb-8336-9145f2888643.gif
* | | | | Fix type inference not working for new Try traitLukas Wirth2021-05-252-1/+41
| |/ / / |/| | |
* | | | Merge #8767bors[bot]2021-05-254-102/+155
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8767: implement range formatting r=matklad a=euclio Fixes #7580. This PR implements the `textDocument/rangeFormatting` request using `rustfmt`'s `--file-lines` option. Still needs some tests. What I want to know is how I should handle the instability of the `--file-lines` option. It's still unstable in rustfmt, so it's only available on nightly, and needs a special flag to enable. Is there a way for `rust-analyzer` to detect if it's using nightly rustfmt, or for users to opt-in? Co-authored-by: Andy Russell <[email protected]>
| * | | implement range formattingAndy Russell2021-05-234-102/+155
| | | |
* | | | Merge #8986bors[bot]2021-05-251-0/+32
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8986: Add go to type definition for struct fields within struct r=matklad a=lf- Example: ```rust struct A; struct B { a/*<- cursor*/: A, } ``` Go to type definition used to not work on this position. It now goes to `A` as expected. Co-authored-by: Jade <[email protected]>
| * | | Add go to type definition for struct fields within structJade2021-05-251-0/+32
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: ```rust struct A; struct B { a/*<- cursor*/: A, } ``` Go to type definition used to not work on this position. It now goes to `A` as expected.
* | | Minor test fixes / new testsFlorian Diebold2021-05-251-15/+62
| | |
* | | Fix type mismatch caused by macrosFlorian Diebold2021-05-252-1/+45
|/ / | | | | | | | | | | MacroStmts should be completely transparent, but it prevented coercion. (I should maybe give `infer_expr` and `infer_expr_inner` better names.)
* | Merge #8942bors[bot]2021-05-2510-62/+124
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8942: Add `library` semantic token modifier to items from other crates r=arzg a=arzg Closes #5772. A lot of code here is pretty repetitive; please let me know if you have any ideas how to improve it, or whether it’s fine as-is. Side-note: How can I add tests for this? I don’t see a way for the test Rust code in `test_highlighting` to reference other crates to observe the new behaviour. Co-authored-by: Aramis Razzaghipour <[email protected]>