aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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 #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.
* | | Merge #8991bors[bot]2021-05-253-13/+57
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | 8991: Consider trait to be in scope for trait-impls r=Veykril a=Veykril Fixes #8912 bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | 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
* | | | Merge #8989bors[bot]2021-05-252-1/+41
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 8989: fix: Fix type inference not working for new Try trait r=Veykril a=Veykril Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8907 bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | Fix type inference not working for new Try traitLukas Wirth2021-05-252-1/+41
|/ / /
* | | Merge #8767bors[bot]2021-05-256-102/+167
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-236-102/+167
| | |
* | | 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.
* | | Merge #8985bors[bot]2021-05-251-15/+62
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8985: minor: Minor test fixes / new tests r=flodiebold a=flodiebold Co-authored-by: Florian Diebold <[email protected]>
| * | | Minor test fixes / new testsFlorian Diebold2021-05-251-15/+62
|/ / /
* | | Merge #8983bors[bot]2021-05-252-1/+45
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | 8983: Fix type mismatch caused by macros r=flodiebold a=flodiebold MacroStmts should be completely transparent, but it prevented coercion. (I should maybe give `infer_expr` and `infer_expr_inner` better names.) Co-authored-by: Florian Diebold <[email protected]>
| * | 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]>
| * | Refactor application of `library` semantic token modifierAramis Razzaghipour2021-05-251-62/+15
| | |
| * | Remove superfluous early-returnsAramis Razzaghipour2021-05-241-18/+22
| | |
| * | Rename ‘foreign’ semantic token modifier to ‘library’Aramis Razzaghipour2021-05-245-20/+20
| | |
| * | Add testing of foreign item highlightingAramis Razzaghipour2021-05-242-1/+55
| | |
| * | Highlight foreign modules as suchAramis Razzaghipour2021-05-241-1/+9
| | |
| * | Remove hir krate methodsAramis Razzaghipour2021-05-244-59/+11
| | |
| * | Add highlighting of items from other cratesAramis Razzaghipour2021-05-246-12/+103
| | |
* | | Merge #8979bors[bot]2021-05-241-5/+9
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8979: minor: update `CrateGraph` comment r=jonas-schievink a=jonas-schievink `cfg` flags are now implemented, and crates *may* have names, it doesn't doesn't matter for name resolution bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Update `CrateGraph` commentJonas Schievink2021-05-241-5/+9
| | | | | | | | | | | | | | | | | | | | `cfg` flags are now implemented, and crates *may* have names, it doesn't doesn't matter for name resolution
* | | | Merge #8978bors[bot]2021-05-243-13/+14
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8978: internal: intern `AttrInput` r=jonas-schievink a=jonas-schievink saves ~10 MB on r-a bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | internal: intern `AttrInput`Jonas Schievink2021-05-243-13/+14
|/ / /
* | | Merge #8975bors[bot]2021-05-244-62/+112
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8975: Use todo!() as placeholder body for generated match arms r=matklad a=jDomantas `todo!()` seems to be a better fit for this than `{}`. Seeing that this assist predates stabilization of `todo` my guess is that simply no one bothered to change it yet. Also fixed the issue where if the last arm was not block-like, rust-analyzer would not add a comma after it and would generate invalid code. Co-authored-by: Domantas Jadenkus <[email protected]>
| * | | add test that it does not create extraneous commasDomantas Jadenkus2021-05-241-0/+20
| | | |
| * | | tidyDomantas Jadenkus2021-05-242-2/+3
| | | |
| * | | generate match arms with todo!() as placeholder bodyDomantas Jadenkus2021-05-242-60/+89
| | | |
* | | | Merge #8977bors[bot]2021-05-247-90/+101
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8977: internal: minor `TokenMap` cleanups r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | FixupJonas Schievink2021-05-242-4/+8
| | | | |
| * | | | Make `TokenTextRange` privateJonas Schievink2021-05-245-11/+10
| | | | |
| * | | | Move `TokenMap` to its own fileJonas Schievink2021-05-243-81/+89
| | | | |
* | | | | Merge #8976bors[bot]2021-05-245-25/+25
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8976: internal: rename hypothetical -> speculative r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>