aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Profile trait solving for all invocationsKirill Bulatov2021-04-143-6/+20
|
* Merge #8514bors[bot]2021-04-141-1/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8514: Add more profiling spans into type inference r=matklad a=SomeoneToIgnore Fixes https://github.com/rust-analyzer/rust-analyzer/issues/8503 I've added a minimal set of spans to remove `???` and showcase the underlying issue: <img width="1552" alt="image" src="https://user-images.githubusercontent.com/2690773/114722983-f2181900-9d42-11eb-821d-9e93ded5f81f.png"> `db.trait_solve` reliably produces the same timings for the same input in the same place for me, despite supposedly being cached by Salsa. In my perception, this is a bit odd, so I've decided to stop at this point and discuss it with people with better knowledge on the topic. Co-authored-by: Kirill Bulatov <[email protected]>
| * Better places for spansKirill Bulatov2021-04-141-2/+1
| |
| * We need to go deeperKirill Bulatov2021-04-141-1/+5
| |
| * Add a missing spanKirill Bulatov2021-04-141-0/+2
|/
* Merge #8507bors[bot]2021-04-131-96/+104
|\ | | | | | | | | | | | | | | 8507: internal: follow test style guide in typing.rs r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * internal: follow test style guide in typing.rsJonas Schievink2021-04-131-96/+104
| |
* | Merge #8506bors[bot]2021-04-131-2/+2
|\ \ | |/ |/| | | | | | | | | | | 8506: crossbeam-channel 0.5.1 r=kjeremy a=kjeremy Fixes a potential memory leak in unbound channels. Co-authored-by: kjeremy <[email protected]>
| * crossbeam-channel 0.5.1kjeremy2021-04-131-2/+2
| | | | | | | | Fixes a potential memory leak in unbound channels.
* | Merge #8504bors[bot]2021-04-131-60/+59
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8504: decl_check: follow test style guide r=jonas-schievink a=jonas-schievink changelog skip bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | decl_check: follow test style guideJonas Schievink2021-04-131-60/+59
|/ /
* | Merge #8432bors[bot]2021-04-133-15/+151
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8432: decl_check: consider outer scopes' allows r=jonas-schievink a=lf- Fix #8417. Also makes it less noisy about no_mangle annotated stuff the user can do nothing about. Note: this still is broken with bitfield! macros. A repro in an ignore test is included here. I believe this bug is elsewhere, and I don't think I can work around it here. I would like help filing the remaining bug, as it does actually affect users, but I don't know how to describe the behaviour (or even if it is unintended). Co-authored-by: Jade <[email protected]>
| * address review feedbackJade2021-04-131-21/+35
| |
| * decl_check: consider outer scopes' allowsJade2021-04-083-11/+133
| | | | | | | | | | | | | | | | | | Fix #8417. Also makes it less noisy about no_mangle annotated stuff the user can do nothing about. Note: this still is broken with bitfield! macros. A repro in an ignore test is included here. I believe this bug is elsewhere, and I don't think I can work around it here.
* | Merge #8354bors[bot]2021-04-137-21/+87
|\ \ | | | | | | | | | | | | | | | | | | | | | 8354: Distinguishing between different operators in semantic highlighting r=matklad a=chetankhilosiya Co-authored-by: Chetan Khilosiya <[email protected]>
| * | 8279: Fix the not operator use and test case fix.Chetan Khilosiya2021-04-083-10/+3
| | |
| * | 8279: Added initial implementation forChetan Khilosiya2021-04-085-19/+92
| | | | | | | | | | | | Operator semantic highlighting.
* | | Merge #8415bors[bot]2021-04-131-2/+46
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8415: Fix faulty assertion when extracting function with macro call r=matklad a=brandondong **Reproduction:** ```rust fn main() { let n = 1; let k = n * n; dbg!(n); } ``` 1. Select the second and third lines of the main function. Use the "Extract into function" code assist. 2. Panic occurs in debug, error is logged in release: "[ERROR ide_assists::handlers::extract_function] assertion failed: matches!(path, ast :: Expr :: PathExpr(_))". 3. Function generates successfully on release where the panic was bypassed. ```rust fn fun_name(n: i32) { let k = n * n; dbg!(n); } ``` **Cause:** - The generated function will take `n` as a parameter. The extraction logic needs to search the usages of `n` to determine whether it is used mutably or not. The helper `path_element_of_reference` is called for each usage but the second usage is a macro call and fails the `Expr::PathExpr(_)` match assertion. - The caller of `path_element_of_reference` does implicitly assume it to be a `Expr::PathExpr(_)` in how it looks at its parent node for determining whether it is used mutably. This logic will not work for macros. - I'm not sure if there are any other cases besides macros where it could be something other than a `Expr::PathExpr(_)`. I tried various examples and could not find any. **Fix:** - Update assertion to include the macro case. - Add a FIXME to properly handle checking if a macro usage requires mutable access. For now, return false instead of running the existing logic that is tailored for `Expr::PathExpr(_)`'s. Co-authored-by: Brandon <[email protected]>
| * | | Add macro testBrandon2021-04-111-0/+32
| | | |
| * | | Add FIXME for macro caseBrandon2021-04-081-0/+13
| | | |
| * | | Fix faulty assertion when extracting function with macro callBrandon2021-04-081-2/+1
| | | |
* | | | Merge #8489bors[bot]2021-04-131-11/+199
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8489: Indent block expressions on enter r=matklad a=jonas-schievink This improves on https://github.com/rust-analyzer/rust-analyzer/pull/8388 by also indenting the created block expression on enter. ![on enter](https://user-images.githubusercontent.com/1786438/114444123-cb38d600-9bce-11eb-8af2-8e8d1c0f9908.gif) Co-authored-by: Jonas Schievink <[email protected]>
| * | | | Add a cov_markJonas Schievink2021-04-121-0/+2
| | | | |
| * | | | Simplify multiline checkJonas Schievink2021-04-121-18/+4
| | | | |
| * | | | Indent block expressions on enterJonas Schievink2021-04-121-12/+212
| | | | |
* | | | | Merge #8500bors[bot]2021-04-133-82/+131
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8500: internal: fix flakiness of accidentally quadratic test r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | internal: fix flakiness of accidentally quadratic testAleksey Kladov2021-04-133-82/+131
| | | | | |
* | | | | | Merge #8499bors[bot]2021-04-133-24/+22
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8499: internal: don't use `#[should_panic]` for tests r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | internal: don't use `#[should_panic]` for testsAleksey Kladov2021-04-133-24/+22
| | | | | |
* | | | | | 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
| | | | |