aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Flycheck tries to parse both Cargo and Rustc messages.James Leitch2021-04-192-22/+46
|
* Merge #8564bors[bot]2021-04-182-0/+11
|\ | | | | | | | | | | | | | | | | | | 8564: Expand `global_asm!` to nothing r=jonas-schievink a=jonas-schievink fixes https://github.com/rust-analyzer/rust-analyzer/issues/8563 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Expand `global_asm!` to nothingJonas Schievink2021-04-182-0/+11
| |
* | Merge #8561bors[bot]2021-04-182-5/+23
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8561: Accept `E<error_number>` notation in doctests r=Veykril a=ChayimFriedman2 ```` ```compile_fail,E0000 ``` ```` The code was stolen from rustdoc at https://github.com/rust-lang/rust/blob/392ba2ba1a7d6c542d2459fb8133bebf62a4a423/src/librustdoc/html/markdown.rs#L866-L867 Co-authored-by: Chayim Refael Friedman <[email protected]>
| * | Accept `E<error_number>` notation in doctestsChayim Refael Friedman2021-04-182-5/+23
| |/ | | | | | | | | | | | | ```compile_fail,E0000 ``` The code was stolen from rustdoc at https://github.com/rust-lang/rust/blob/392ba2ba1a7d6c542d2459fb8133bebf62a4a423/src/librustdoc/html/markdown.rs#L866-L867
* | Merge #8560bors[bot]2021-04-182-3/+23
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8560: Escape characters in doc comments in macros correctly r=jonas-schievink a=ChayimFriedman2 Previously they were escaped twice, both by `.escape_default()` and the debug view of strings (`{:?}`). This leads to things like newlines or tabs in documentation comments being `\\n`, but we unescape literals only once, ending up with `\n`. This was hard to spot because CMark unescaped them (at least for `'` and `"`), but it did not do so in code blocks. This also was the root cause of #7781. This issue was solved by using `.escape_debug()` instead of `.escape_default()`, but the real issue remained. We can bring the `.escape_default()` back by now, however I didn't do it because it is probably slower than `.escape_debug()` (more work to do), and also in order to change the code the least. Example (the keyword and primitive docs are `include!()`d at https://doc.rust-lang.org/src/std/lib.rs.html#570-578, and thus originate from macro): Before: ![image](https://user-images.githubusercontent.com/24700207/115130096-40544300-9ff5-11eb-847b-969e7034e8a4.png) After: ![image](https://user-images.githubusercontent.com/24700207/115130143-9cb76280-9ff5-11eb-9281-323746089440.png) Co-authored-by: Chayim Refael Friedman <[email protected]>
| * Escape characters in doc comments in macros correctlyChayim Refael Friedman2021-04-182-3/+23
| | | | | | | | | | | | | | | | | | Previously they were escaped twice, both by `.escape_default()` and the debug view of strings (`{:?}`). This leads to things like newlines or tabs in documentation comments being `\\n`, but we unescape literals only once, ending up with `\n`. This was hard to spot because CMark unescaped them (at least for `'` and `"`), but it did not do so in code blocks. This also was the root cause of #7781. This issue was solved by using `.escape_debug()` instead of `.escape_default()`, but the real issue remained. We can bring the `.escape_default()` back by now, however I didn't do it because it is probably slower than `.escape_debug()` (more work to do), and also in order to change the code the least.
* | Add some more error messages to fixture failure casesLukas Wirth2021-04-172-4/+6
| |
* | Add an error message to fixture errorsYoshua Wuyts2021-04-171-1/+3
| |
* | nail rowan version downBernhard Schuster2021-04-171-1/+1
| | | | | | The different pre versions include breaking changes, which cause build failures for the users.
* | 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
|/ / / / / /