aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* internal: fix flakiness of accidentally quadratic testAleksey Kladov2021-04-133-82/+131
|
* Merge #8498bors[bot]2021-04-137-61/+115
|\ | | | | | | | | | | | | | | | | 8498: feat: improve performance by delaying computation of fixes for diagnostics r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * feat: improve performance by delaying computation of fixes for diagnosticsAleksey Kladov2021-04-137-40/+74
| |
| * Ensure that listing&resolving code actions use the same set of actionsAleksey Kladov2021-04-132-23/+43
|/
* Merge #8494bors[bot]2021-04-135-101/+72
|\ | | | | | | | | | | | | | | | | 8494: internal: unfork code paths for unresolved and resolved assist r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * internal: unfork code paths for unresolved and resolved assistAleksey Kladov2021-04-135-101/+72
| |
* | Merge #8496bors[bot]2021-04-131-1/+2
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 8496: Exclude nightly tag from git describe to fix version string r=lnicola a=lnicola Otherwise if we run `git describe` on the release day we pick up the `nightly` tag from the previous release. changelog fix bors r+ Co-authored-by: Laurențiu Nicola <[email protected]>
| * Exclude nightly tag from git describe to fix version stringLaurențiu Nicola2021-04-131-1/+2
|/
* Merge #8488bors[bot]2021-04-121-1/+1
|\ | | | | | | | | | | | | | | 8488: Fix typo: liner -> linear r=SomeoneToIgnore a=NieDzejkob :see_no_evil: Co-authored-by: Jakub Kądziołka <[email protected]>
| * Fix typo: liner -> linearJakub Kądziołka2021-04-121-1/+1
|/ | | :see_no_evil:
* Merge #8483bors[bot]2021-04-121-3/+5
|\ | | | | | | | | | | | | | | 8483: internal: clarify who a rls-2.0 wg r=edwin0cheng a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * internal: clarify who a rls-2.0 wgAleksey Kladov2021-04-121-3/+5
| |
* | Merge #8481bors[bot]2021-04-126-77/+96
|\ \ | |/ |/| | | | | | | | | | | | | 8481: internal: prepare for lazy diagnostics r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * internal: prepare for lazy diagnosticsAleksey Kladov2021-04-126-77/+96
|/
* Merge #8478bors[bot]2021-04-121-7/+8
|\ | | | | | | | | | | | | | | | | 8478: fix: don't spam repeated error messages when `cargo check` fails r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * fix: don't spam repeated error messages when `cargo check` failsAleksey Kladov2021-04-121-7/+8
|/ | | | | | | Conceptually, using a *message* here is wrong, because this is a "status", rather than "point in time" thing. But statuses are an LSP extension, while messages are stable. As a compromise, send message only for more critical `metadata` failures, and only once per state change.
* Merge #8476bors[bot]2021-04-1214-121/+248
|\ | | | | | | | | | | | | | | | | 8476: feat: avoid checking the whole project during initial loading r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * feat: avoid checking the whole project during initial loadingAleksey Kladov2021-04-1214-121/+248
|/
* Merge #8469bors[bot]2021-04-111-4/+3
|\ | | | | | | | | | | | | | | | | | | | | 8469: Remove assertion in impl collection r=flodiebold a=flodiebold This condition should always be true for *valid* code, but of course there might be invalid code or things that we can't currently resolve. Fixes #8464. Co-authored-by: Florian Diebold <[email protected]>
| * Remove assertion in impl collectionFlorian Diebold2021-04-111-4/+3
|/ | | | | | | This condition should always be true for *valid* code, but of course there might be invalid code or things that we can't currently resolve. Fixes #8464.
* Merge #8465bors[bot]2021-04-111-3/+3
|\ | | | | | | | | | | | | | | | | | | | | | | 8465: Include more info in assert r=jonas-schievink a=jonas-schievink This helped find https://github.com/rust-analyzer/rust-analyzer/issues/8464 changelog skip bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Include more info in assertJonas Schievink2021-04-111-3/+3
| |
* | Merge #8463bors[bot]2021-04-117-10/+88
|\ \ | | | | | | | | | | | | | | | | | | | | | 8463: Support macros in pattern position r=jonas-schievink a=jonas-schievink This was fairly easy, because patterns are limited to bodies, so almost all changes were inside body lowering. Co-authored-by: Jonas Schievink <[email protected]>
| * | Support macros in pattern positionJonas Schievink2021-04-117-10/+88
| |/
* | Merge #8436bors[bot]2021-04-101-19/+109
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8436: Fix extract function's mutability of variables outliving the body r=matklad a=brandondong **Reproduction:** ```rust fn main() { let mut k = 1; let mut j = 2; j += 1; k += j; } ``` 1. Select the first to third lines of the main function. Use the "Extract into function" code assist. 2. The output is the following which does not compile because the outlived variable `k` is declared as immutable: ```rust fn main() { let (k, j) = fun_name(); k += j; } fn fun_name() -> (i32, i32) { let mut k = 1; let mut j = 2; j += 1; (k, j) } ``` 3. We would instead expect the output to be: ```rust fn main() { let (mut k, j) = fun_name(); k += j; } ``` **Fix:** - Instead of declaring outlived variables as immutable unconditionally, check for any mutable usages outside of the extracted function. Co-authored-by: Brandon <[email protected]>
| * Fix extract function's mutability of variables outliving the bodyBrandon2021-04-091-19/+109
| |
* | Merge #8460bors[bot]2021-04-104-100/+105
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8460: Revert "Rewrite `#[derive]` removal code to be based on AST" r=jonas-schievink a=jonas-schievink It breaks some function-like proc macros: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/Proc.20macro.20expansion/near/233971916 It also uses attribute indices incorrectly, which causes insufficient attributes to be removed. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Revert "Rewrite `#[derive]` removal to be based on AST"Jonas Schievink2021-04-104-92/+105
| | | | | | | | | | | | This reverts commit 7e78aebc8fbbb4043d62949681e4d700f1a2ec46.
| * | Revert "Use `pub(crate)`"Jonas Schievink2021-04-101-5/+1
| | | | | | | | | | | | This reverts commit c51213c2e7de21b7e68e6773ca3be0cdfc7c18af.
| * | Revert "Use `name![derive]`"Jonas Schievink2021-04-101-6/+2
|/ / | | | | | | This reverts commit d6187de4cd34a1288c7820c5477b81b1e9b692a9.
* | Merge #8458bors[bot]2021-04-101-698/+656
|\ \ | | | | | | | | | | | | | | | | | | | | | 8458: Respect test style guidelines in tests::traits r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | Respect test style guidelines in tests::traitsLukas Wirth2021-04-101-698/+656
|/ /
* | Merge #8457bors[bot]2021-04-102-32/+139
|\ \ | | | | | | | | | | | | | | | | | | | | | 8457: Implement more precise binary op return type heuristic r=flodiebold a=Veykril Should fix #7150 Co-authored-by: Lukas Wirth <[email protected]>
| * | Add test for binary op return ty with adtLukas Wirth2021-04-101-0/+47
| | |
| * | Add manual ops::Add impls to test::traits::closure_2Lukas Wirth2021-04-101-20/+46
| | |
| * | Implement more precise binary op return type predictionLukas Wirth2021-04-102-17/+51
| | |
* | | Merge #8410bors[bot]2021-04-105-20/+50
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 8410: Use CompletionTextEdit::InsertAndReplace if supported by the client r=Veykril a=Veykril Fixes #8404, Fixes #3130 Co-authored-by: Lukas Wirth <[email protected]>
| * | Use CompletionTextEdit::InsertAndReplace if supported by the clientLukas Wirth2021-04-085-20/+50
| | |
* | | Merge #8384bors[bot]2021-04-103-1/+100
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8384: add is quadratic test r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Let's try testing for "is not quadratic" conditionAleksey Kladov2021-04-103-1/+100
|/ / /
* | | Merge #8453bors[bot]2021-04-091-3/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8453: Avoid an unnecessary `collect` r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Avoid an unnecessary `collect`Jonas Schievink2021-04-091-3/+1
|/ / /
* | | Merge #8450bors[bot]2021-04-092-1/+5
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8450: Don't ignore unnamed consts when looking for definitions r=Veykril a=Veykril Fixes #8448 bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | Insert unnamed consts to ChildBySource DynMapLukas Wirth2021-04-092-1/+5
| | | |
* | | | Merge #8447bors[bot]2021-04-093-7/+64
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8447: Resolve prelude and crate root names in the root DefMap r=jonas-schievink a=jonas-schievink Should fix https://github.com/rust-analyzer/rust-analyzer/issues/8418 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | Resolve prelude and crate root names in the root DefMapJonas Schievink2021-04-093-7/+64
|/ / / /
| | | |
| \ \ \
*-. \ \ \ Merge #8443 #8446bors[bot]2021-04-0910-143/+149
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8443: Rewrite `#[derive]` removal code to be based on AST r=jonas-schievink a=jonas-schievink We now remove any `#[derive]` before and including the one we want to expand, in the `macro_arg` query. The same infra will be needed by attribute macros (except we only remove the attribute we're expanding, not any preceding ones). Part of https://github.com/rust-analyzer/rust-analyzer/issues/8434 (doesn't implement the cfg-expansion yet, because that's more difficult) 8446: Undo path resolution hack for extern prelude r=jonas-schievink a=jonas-schievink Reverts the change made in https://github.com/rust-analyzer/rust-analyzer/pull/7959 We don't populate the extern prelude for block DefMaps anymore, so this is unnecessary bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| | * | | | Undo path resolution hack for extern preludeJonas Schievink2021-04-091-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't populate the extern prelude for block DefMaps anymore, so this is unnecessary
| * | | | | Use `name![derive]`Jonas Schievink2021-04-091-2/+6
| | | | | |
| * | | | | Use `pub(crate)`Jonas Schievink2021-04-091-1/+5
| | | | | |