aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add more documentation for rustc_privateJoshua Nelson2021-03-083-5/+9
|
* Merge #7924bors[bot]2021-03-08101-514/+354
|\ | | | | | | | | | | | | | | | | | | 7924: Use upstream cov-mark r=matklad a=lnicola Closes #7922 But doesn't remove any dependency, unfortunately. Co-authored-by: Laurențiu Nicola <[email protected]>
| * Use upstream cov-markLaurențiu Nicola2021-03-08101-514/+354
|/
* Merge #7923bors[bot]2021-03-088-2138/+2131
|\ | | | | | | | | | | | | | | | | 7923: Remove useless code_model indirection r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Hygiene is an internal implementation detail of the compilerAleksey Kladov2021-03-084-7/+12
| |
| * Remove useless code_model indirectionAleksey Kladov2021-03-085-2132/+2120
| |
* | Merge #7918bors[bot]2021-03-0816-144/+158
|\| | | | | | | | | | | | | | | | | 7918: Generalize file ensuring infrastructure r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * MinorAleksey Kladov2021-03-081-1/+1
| |
| * Cleanup the error messageAleksey Kladov2021-03-082-2/+2
| |
| * Remove now dead codeAleksey Kladov2021-03-089-90/+76
| |
| * Unused paramsAleksey Kladov2021-03-085-10/+10
| |
| * Make `code generation` just workAleksey Kladov2021-03-088-50/+42
| | | | | | | | | | Contributors don't need to learn about `cargo xtask codegen` if `cargo test` just does the right thing.
| * Use the same name in xtask and test utilsAleksey Kladov2021-03-084-12/+12
| |
| * Generalize file ensuring infrastructureAleksey Kladov2021-03-082-6/+38
| |
| * Make working with codegen less annoyingAleksey Kladov2021-03-083-21/+25
|/ | | | | | | | | | We probably should look into removing `xtask codegen` altogether. The test workflow works perfectly for package.json config. There are two things preventing that: * Lint completions are generated on demand. * Docs are not committed to the repository.
* Merge #7921bors[bot]2021-03-084-99/+96
|\ | | | | | | | | | | | | | | | | 7921: Don't punish every crate with serde-json r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Don't punish every crate with serde-jsonAleksey Kladov2021-03-084-99/+96
|/
* Merge #7891bors[bot]2021-03-085-54/+114
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-083-3/+4
| |
| * 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-0810-60/+12
| | | | | | | | This reverts commit ddce6bb282764692d53b719bff4c37e3512d4556.
| * Support disabling rustc build scriptsDaniel McNab2021-03-0810-12/+61
| |
| * 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
| |
* | Merge #7920bors[bot]2021-03-082-33/+24
|\ \ | | | | | | | | | | | | | | | | | | | | | 7920: Cargo update r=kjeremy a=kjeremy Chalk changes just a version # bump. There are no actual commits. Co-authored-by: kjeremy <[email protected]>
| * | Cargo updatekjeremy2021-03-082-33/+24
|/ / | | | | | | Chalk changes just a version # bump. There are no actual commits.
* | Merge #7914bors[bot]2021-03-083-3/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 7914: Make code completion "just work" in more cases r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Make code completion "just work" in more casesAleksey Kladov2021-03-083-3/+3
|/ /
* | Merge #7912bors[bot]2021-03-081-46/+49
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7912: Dedupe import map results r=matklad a=SomeoneToIgnore While debugging https://github.com/rust-analyzer/rust-analyzer/issues/7902, I've found that there are some duplicates are produced during the external dependencies lookup. I've spotted at least some of the `indexed_value.value` duplicated when typed `Arc` and requested the completions for that, so I've also deduped the `IndexedValue`'s to avoid unnecessary computations. This helps to show `Arc` in the completion suggestions in a zero dependency project and in `hir` module, but we loose it again in the `ide` module. Co-authored-by: Kirill Bulatov <[email protected]>
| * | Do not process indexed values more than onceKirill Bulatov2021-03-081-29/+31
| | |
| * | Deduplicate search_dependencies resultsKirill Bulatov2021-03-081-18/+19
| | |
* | | Merge #7901bors[bot]2021-03-085-15/+42
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 7901: Make extension respect http proxy settings r=matklad a=kamyuentse This patch makes vscode extension respect proxy settings when fetching release metadata and rust-analyzer binary. Co-authored-by: Kam Y. Tse <[email protected]>
| * | Make extension respect http proxy settingsKam Y. Tse2021-03-075-15/+42
| | |
* | | Merge #7889bors[bot]2021-03-0714-23/+79
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7889: Make group imports configurable r=lnicola a=asv1 Co-authored-by: asv <[email protected]>
| * | | Make group imports configurableasv2021-03-0714-23/+79
| | | |
* | | | Merge #7895bors[bot]2021-03-075-21/+23
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 7895: :arrow_up: xflags r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | :arrow_up: xflagsAleksey Kladov2021-03-075-21/+23
| | | |
* | | | 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
* | | | Merge #7899bors[bot]2021-03-064-19/+19
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7899: Rename a few `crate_def_map`s to `def_map` r=jonas-schievink a=jonas-schievink These could all be block `DefMap`s instead of crate-level `DefMap`s bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | 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