aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Don't punish every crate with serde-jsonAleksey Kladov2021-03-083-98/+96
|
* Merge #7891bors[bot]2021-03-083-52/+112
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7891: Improve handling of rustc_private r=matklad a=DJMcNab This PR changes how `rust-analyzer` handles `rustc_private`. In particular, packages now must opt-in to using `rustc_private` in `Cargo.toml`, by adding: ```toml [package.metadata.rust-analyzer] rustc_private=true ``` This means that depending on crates which also use `rustc_private` will be significantly improved, since their dependencies on the `rustc_private` crates will be resolved properly. A similar approach could be used in #6714 to allow annotating that your package uses the `test` crate, although I have not yet handled that in this PR. Additionally, we now only index the crates which are transitive dependencies of `rustc_driver` in the `rustcSource` directory. This should not cause any change in behaviour when using `rustcSource: "discover"`, as the source used then will only be a partial clone. However, if `rustcSource` pointing at a local checkout of rustc, this should significantly improve the memory usage and lower indexing time. This is because we avoids indexing all crates in `src/tools/`, which includes `rust-analyzer` itself. Furthermore, we also prefer named dependencies over dependencies from `rustcSource`. This ensures that feature resolution for crates which are depended on by both `rustc` and your crate uses the correct set for analysing your crate. See also [introductory zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Fixed.20crate.20graphs.20and.20optional.20builtin.20crates/near/229086673) I have tested this in [priroda](https://github.com/oli-obk/priroda/), and it provides a significant improvement to the development experience (once I give `miri` the required data in `Cargo.toml`) Todo: - [ ] Documentation This is ready to review, and I will add documentation if this would be accepted (or if I get time to do so anyway) Co-authored-by: Daniel McNab <[email protected]>
| * Document rustc_private in metadataDaniel McNab2021-03-081-1/+2
| |
| * Never run cargo check on the rustc sourceDaniel McNab2021-03-081-4/+1
| |
| * Only show directory nameDaniel McNab2021-03-081-1/+1
| |
| * Revert "Support disabling rustc build scripts"Daniel McNab2021-03-088-53/+12
| | | | | | | | This reverts commit ddce6bb282764692d53b719bff4c37e3512d4556.
| * Support disabling rustc build scriptsDaniel McNab2021-03-088-12/+54
| |
| * Fix the commentDaniel McNab2021-03-071-4/+4
| | | | | | | | It's worse than I thought...
| * Extract the large nested block into a functionDaniel McNab2021-03-071-72/+98
| | | | | | | | | | Also add some more detailed comments Extract into function deleted the previous comments
| * Require opt in to rustc_privateDaniel McNab2021-03-072-70/+70
| | | | | | | | | | | | This gives the advantage that A future extension would be to check for `feature(rustc_private)` instead
| * Don't double analyse the same crateDaniel McNab2021-03-071-1/+6
| |
| * Update crate graph to only use subcrates of rustc_driverDaniel McNab2021-03-071-38/+38
| |
| * If a manual dependency exists, don't overwriteDaniel McNab2021-03-061-1/+8
| | | | | | | | | | | | | | | | This is a hack to work around miri being included in our analysis of rustc-dev Really, we should probably use an include set of the actual root libraries I'm not sure how those are determined however
| * Implement opt-in (and opt-out) rustc_privateDaniel McNab2021-03-062-3/+26
| |
* | Cargo updatekjeremy2021-03-081-3/+3
| | | | | | | | Chalk changes just a version # bump. There are no actual commits.
* | Make code completion "just work" in more casesAleksey Kladov2021-03-081-1/+1
| |
* | Do not process indexed values more than onceKirill Bulatov2021-03-081-29/+31
| |
* | Deduplicate search_dependencies resultsKirill Bulatov2021-03-081-18/+19
| |
* | Merge #7889bors[bot]2021-03-0712-23/+72
|\ \ | | | | | | | | | | | | | | | | | | | | | 7889: Make group imports configurable r=lnicola a=asv1 Co-authored-by: asv <[email protected]>
| * | Make group imports configurableasv2021-03-0712-23/+72
| |/
* | Merge #7895bors[bot]2021-03-072-8/+9
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 7895: :arrow_up: xflags r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | :arrow_up: xflagsAleksey Kladov2021-03-072-8/+9
| | |
* | | Merge #7892bors[bot]2021-03-074-62/+89
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7892: Fix TokenStream::from_str for input consisting of a single group with delimiter r=edwin0cheng a=kevinmehall TokenStream holds a `tt::Subtree` but assumes its `delimiter` is always `None`. In particular, the iterator implementation iterates over the inner `token_trees` and ignores the `delimiter`. However, `TokenStream::from_str` violated this assumption when the input consists of a single group by producing a Subtree with an outer delimiter, which was ignored as seen by a procedural macro. `tt::Subtree` is just `pub delimiter: Option<Delimiter>, pub token_trees: Vec<TokenTree>`, so a Subtree that is statically guaranteed not to have a delimiter is just `Vec<TokenTree>`. Fixes #7810 Fixes #7875 Co-authored-by: Kevin Mehall <[email protected]>
| * | | Move TokenStream::to_string helpers inside the methodKevin Mehall2021-03-061-30/+34
| | | |
| * | | Make a placeholder panic message explain its purposeKevin Mehall2021-03-061-1/+1
| | | |
| * | | Refactor TokenStream to hold Vec<TokenTree> instead of tt::SubtreeKevin Mehall2021-03-063-65/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `TokenStream` assumes that its subtree's delimeter is `None`, and this should be encoded in the type system instead of having a delimiter field that is mostly ignored. `tt::Subtree` is just `pub delimiter: Option<Delimiter>, pub token_trees: Vec<TokenTree>`, so a Subtree that is statically guaranteed not to have a delimiter is just Vec<TokenTree>.
| * | | Fix TokenStream::from_str for input consisting of a single GroupKevin Mehall2021-03-061-2/+34
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TokenStream holds a `tt::Subtree` but assumes its `delimiter` is always `None`. In particular, the iterator implementation iterates over the inner `token_trees` and ignores the `delimiter`. However, `TokenStream::from_str` violated this assumption when the input consists of a single Group by producing a Subtree with an outer delimiter, which was ignored as seen by a procedural macro. In this case, wrap an extra level of Subtree around it. Fixes #7810 Fixes #7875
* | | Rename a few `crate_def_map`s to `def_map`Jonas Schievink2021-03-064-19/+19
| | | | | | | | | | | | These could all be block `DefMap`s instead of crate-level `DefMap`s
* | | Merge #7896bors[bot]2021-03-061-59/+77
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7896: Only replace quotes in replace_string_with_char assist r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | Only replace quotes in replace_string_with_char assistLukas Wirth2021-03-061-59/+77
| | | |
* | | | Merge #7800bors[bot]2021-03-063-0/+407
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 7800: [WIP] 7708: Initial implementation of generate Default assist. r=Veykril a=chetankhilosiya The Generate Default impl from new function. Co-authored-by: Chetan Khilosiya <[email protected]>
| * | | 7708: rust ideomatic code fixes.Chetan Khilosiya2021-03-061-9/+11
| | | |
| * | | 7708: handle both FamousDefs fixture and plain code.Chetan Khilosiya2021-03-061-8/+18
| | | | | | | | | | | | | | | | Also fix typo in example.
| * | | 7708: Added the updated implementation of is_default_implemented.Chetan Khilosiya2021-03-061-33/+31
| | | | | | | | | | | | | | | | The implementation uses hir create to find the implemented trait.
| * | | 7708: Added the logic to check is default impl is already present.Chetan Khilosiya2021-03-061-18/+97
| | | | | | | | | | | | | | | | Also added test cases for code present within module.
| * | | 7708: Updated generate default fn logic.Chetan Khilosiya2021-03-061-22/+48
| | | |
| * | | 7708: Added the work for review comments.Chetan Khilosiya2021-03-061-31/+60
| | | | | | | | | | | | | | | | Also added 1 test case to test multiple struct blocks are present.
| * | | 7708: Fixed many documentaion example issues.Chetan Khilosiya2021-03-062-6/+37
| | | |
| * | | 7708: Format code through rust-analyzer formatter.Chetan Khilosiya2021-03-061-35/+44
| | | |
| * | | 7708: Initial implementation of generate Default assist.Chetan Khilosiya2021-03-062-0/+223
| | |/ | |/| | | | | | | The Generate Default impl from new function.
* | | Merge #7865bors[bot]2021-03-061-1/+37
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 7865: preserve escape sequences when replacing string with char r=Veykril a=jDomantas Currently it replaces escape sequence with the actual value, which is very wrong for `"\n"`. Co-authored-by: Domantas Jadenkus <[email protected]>
| * | preserve escape sequences when replacing string with charDomantas Jadenkus2021-03-031-1/+37
| | |
* | | generate function assist convert arg names to lower snake caseJosh Mcguigan2021-03-061-4/+52
| |/ |/|
* | Merge #7887bors[bot]2021-03-052-2/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 7887: Fix fail to parse :: for meta in mbe r=edwin0cheng a=edwin0cheng fixes #7886 bors r+ Co-authored-by: Edwin Cheng <[email protected]>
| * | Fix fail to parse :: for meta in mbeEdwin Cheng2021-03-052-2/+4
| | |
* | | Merge #7884bors[bot]2021-03-052-39/+43
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7884: Simplify TokenStream FromStr r=edwin0cheng a=edwin0cheng Make sure `FromStr` ignore all `TokenMap` in all cases. bors r+ Co-authored-by: Edwin Cheng <[email protected]>
| * | | Fix testEdwin Cheng2021-03-051-1/+1
| | | |
| * | | Simplify TokenStream FromStrEdwin Cheng2021-03-051-38/+42
| | | |
* | | | Merge #7869bors[bot]2021-03-051-0/+43
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 7869: Add support for deref assignments to "pull assignment up" assist. r=Veykril a=Jesse-Bakker Fixes #7867 Co-authored-by: Jesse Bakker <[email protected]>
| * | | Add support for deref assignments to "pull assignment up" assist.Jesse Bakker2021-03-051-0/+43
| |/ / | | | | | | | | | Fixes #7867