aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Handle extended key value attr in mbeEdwin Cheng2021-04-173-48/+35
|
* Fix `TestDB::module_at_position` with submodulesJonas Schievink2021-04-172-2/+72
|
* Merge #8546bors[bot]2021-04-162-2/+35
|\ | | | | | | | | | | | | | | | | 8546: Return CallInfo for unclosed call expressions r=Veykril a=Veykril Closes #8522 bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * Return CallInfo for unclosed call expressionsLukas Wirth2021-04-162-2/+35
| |
* | Merge #8542bors[bot]2021-04-168-20/+40
|\ \ | | | | | | | | | | | | | | | | | | | | | 8542: Include path in `unresolved-macro-call` diagnostic r=matklad a=jonas-schievink Co-authored-by: Jonas Schievink <[email protected]>
| * | Include path in `unresolved-macro-call` diagnosticJonas Schievink2021-04-168-20/+40
| |/
* | Merge #8539bors[bot]2021-04-165-7/+53
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 8539: fix: Do not propose inherent traits in flyimports and import assists r=flodiebold a=SomeoneToIgnore Closes https://github.com/rust-analyzer/rust-analyzer/issues/8520 I've went with a separate method approach, since the [highlighted code](https://github.com/rust-analyzer/rust-analyzer/issues/8520#issuecomment-819856337) has not`Type` and uses `Ty` to get his data, but the code I had to change has no access to `Ty` and has `Type` only. Co-authored-by: Kirill Bulatov <[email protected]>
| * | Exclude inherent traits from flyimportsKirill Bulatov2021-04-165-7/+53
| |/
* | Fix primitive shadowing with inner itemsJonas Schievink2021-04-162-1/+25
| |
* | Merge #8543bors[bot]2021-04-162-16/+24
|\ \ | |/ |/| | | | | | | | | | | | | 8543: Assist fix: Fill match arms for a tuple of a single enum. r=Veykril a=iDawer This is rather a small fix addressing an issue mentioned in https://github.com/rust-analyzer/rust-analyzer/issues/8493#issuecomment-818770670 Co-authored-by: Dawer <[email protected]>
| * Fill match arms for a tuple of a single enum.Dawer2021-04-162-16/+24
| |
* | change grammarMilo2021-04-151-4/+4
| |
* | Remove unneeded annotations from find_path testsJonas Schievink2021-04-151-6/+0
| |
| |
| \
*-. | Merge #8510 #8533bors[bot]2021-04-154-48/+75
|\ \| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8510: Move cursor position when using item movers r=jonas-schievink a=jonas-schievink This updates the cursor position when moving items around to stay in the same location within the moved node. I changed the `moveItem` response to `SnippetTextEdit[]`, since that made more sense to me (the file was ignored by the client anyways, since the edits always apply to the current document). It also matches `onEnter`, which seems logical to me, but please let me know if this doesn't make sense. There's still a bug in the client-side snippet code that will cause the cursor position to be slightly off when moving parameters in the same line (presumably we don't track the column correctly after deleting `$0`). Not really sure how to fix that immediately, but this PR should already be an improvement despite that bug. 8533: Fix typo in style guide r=jonas-schievink a=jonas-schievink Fixes bold text rendering bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Move cursor position when using item moversJonas Schievink2021-04-134-48/+75
| | |
* | | Make find_path tests adhere to style guideJonas Schievink2021-04-151-260/+327
| |/ |/|
* | Do not show flyimports in trait or impl declarationsKirill Bulatov2021-04-151-0/+50
| |
* | Profile trait solving for all invocationsKirill Bulatov2021-04-143-6/+20
| |
* | 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
|/
* internal: follow test style guide in typing.rsJonas Schievink2021-04-131-96/+104
|
* decl_check: follow test style guideJonas Schievink2021-04-131-60/+59
|
* Merge #8432bors[bot]2021-04-132-14/+150
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-082-10/+132
| | | | | | | | | | | | | | | | | | 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
| | | | | |
* | | | | | internal: don't use `#[should_panic]` for testsAleksey Kladov2021-04-132-24/+12
|/ / / / /
* | | | | 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
| | | | | |
* | | | | | Exclude nightly tag from git describe to fix version stringLaurențiu Nicola2021-04-131-1/+2
|/ / / / /
* / / / / Fix typo: liner -> linearJakub Kądziołka2021-04-121-1/+1
|/ / / / | | | | | | | | :see_no_evil:
* | | | internal: prepare for lazy diagnosticsAleksey Kladov2021-04-126-77/+96
| | | |
* | | | 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.
* | | | feat: avoid checking the whole project during initial loadingAleksey Kladov2021-04-1212-121/+237
| | | |
* | | | 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.