aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | | | | Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-05-0153-486/+1579
| |\ \ \ \ \ \ \
| * | | | | | | | Add unwrap block assist #4156Benjamin Coenen2020-04-292-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | | | | | | | Add unwrap block assist #4156Benjamin Coenen2020-04-294-1/+457
| | |_|_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | | | | | | | Fix parsing of blocks without `{`Aleksey Kladov2020-05-0211-62/+107
| |_|_|/ / / / |/| | | | | |
* | | | | | | Merge #4234bors[bot]2020-05-0213-17/+139
|\ \ \ \ \ \ \ | |_|_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4234: Support local_inner_macros r=jonas-schievink a=edwin0cheng This PR implements `#[macro_export(local_inner_macros)]` support. Note that the rustc implementation is quite [hacky][1] too. :) [1]: https://github.com/rust-lang/rust/blob/614f273e9388ddd7804d5cbc80b8865068a3744e/src/librustc_resolve/macros.rs#L456 Co-authored-by: Edwin Cheng <[email protected]>
| * | | | | | Test whether it is bang macro properlyEdwin Cheng2020-05-022-8/+10
| | | | | | |
| * | | | | | Add test in name resolutionsEdwin Cheng2020-05-021-0/+37
| | | | | | |
| * | | | | | Update crates/ra_hir_expand/src/builtin_derive.rs Edwin Cheng2020-05-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix spacing Co-authored-by: Jonas Schievink <[email protected]>
| * | | | | | Make AttrQuery copyableEdwin Cheng2020-05-012-10/+15
| | | | | | |
| * | | | | | Support local_inner_macrosEdwin Cheng2020-05-0110-19/+97
| | |/ / / / | |/| | | |
* | | | | | Merge #4257bors[bot]2020-05-02209-10922/+10645
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4257: ast::EffectExpr r=matklad a=matklad closes #4230 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | | Add missing members generates indented blocksAleksey Kladov2020-05-023-87/+119
| | | | | | |
| * | | | | | Add smoke test for decorated blocksAleksey Kladov2020-05-021-0/+32
| | | | | | |
| * | | | | | Cleanup inline testsAleksey Kladov2020-05-029-32/+63
| | | | | | |
| * | | | | | Update test dataAleksey Kladov2020-05-02178-10580/+10223
| | | | | | |
| * | | | | | Introduce EffectExprAleksey Kladov2020-05-0223-249/+234
| | | | | | |
* | | | | | | Merge #4256bors[bot]2020-05-021-2/+2
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4256: Improve formatting of analyzer status text r=flodiebold a=eminence The old formatting had everything on 1 line, making it quite hard to read: requests: 1 textDocument/documentSymbol 2ms 2 textDocument/codeAction 2ms 3 rust-analyzer/inlayHints 20ms 4 textDocument/foldingRange 108ms 6 textDocument/codeLens 66ms 5 textDocument/semanticTokens/range 76ms 8 rust-analyzer/inlayHints 195ms 7 textDocument/semanticTokens 250ms 9 textDocument/semanticTokens/range 108ms It now looks like this: ``` requests: * 1 textDocument/documentSymbol 11ms 2 textDocument/codeAction 15ms 3 rust-analyzer/inlayHints 4ms 5 textDocument/foldingRange 3ms 4 textDocument/semanticTokens/range 45ms 6 textDocument/codeLens 182ms 8 rust-analyzer/inlayHints 124ms 7 textDocument/semanticTokens 127ms 9 textDocument/documentHighlight 2ms 10 textDocument/codeAction 3ms ``` Co-authored-by: Andrew Chin <[email protected]>
| * | | | | | | Improve formatting of analyzer status textAndrew Chin2020-05-021-2/+2
| | |_|_|/ / / | |/| | | | |
* | | | | | | Test/check the whole packageAleksey Kladov2020-05-022-7/+3
| |/ / / / / |/| | | | | | | | | | | | | | | | | Closes #4255
* | | | | | Revert "Merge #4233"Aleksey Kladov2020-05-028-29/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a5f2b16366f027ad60c58266a66eb7fbdcbda9f9, reversing changes made to c96b2180c1c4206a0a98c280b4d30897eb116336.
* | | | | | Update crateskjeremy2020-05-011-1/+1
|/ / / / /
| | | | |
| \ \ \ \
*-. \ \ \ \ Merge #4220 #4240bors[bot]2020-05-0123-103/+249
|\ \ \ \ \ \ | | | |_|/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4220: Introduce LowerCtx r=matklad a=edwin0cheng This PR introduces `LowerCtx` for path lowering. After this PR, there are only 2 places remains for using deprecated `Path::from_ast`, which is related to `AstTransform` I am not familiar. I would like to change these in another PR by others ;) related disscusiion: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Path.3A.3Afrom_src And also fixed part of https://github.com/rust-analyzer/rust-analyzer/issues/4176#issuecomment-620672930 4240: Bump deps r=matklad a=lnicola Co-authored-by: Edwin Cheng <[email protected]> Co-authored-by: Laurențiu Nicola <[email protected]>
| | * | | | Bump depsLaurențiu Nicola2020-05-018-25/+37
| | |/ / /
| * | | | Remove lower_path from AssistCtx to SemanticEdwin Cheng2020-05-013-8/+10
| | | | |
| * | | | Introduce LowerCtx for path loweringEdwin Cheng2020-05-0114-80/+172
| | | | |
| * | | | Add testEdwin Cheng2020-05-011-0/+40
| |/ / /
* | | | Merge #4244bors[bot]2020-05-012-1/+16
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4244: Show unsafe trait in hover r=matklad a=DianaNites Following on #2450 and #4210, for traits. `unsafe` is the only qualifier they can have, though. Co-authored-by: Diana <[email protected]>
| * | | | Test for unsafe traitDiana2020-05-011-0/+11
| | | | |
| * | | | Unsafe traitsDiana2020-05-011-1/+5
| |/ / /
* | | | Merge #4246bors[bot]2020-05-018-74/+177
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4246: Validate uses of self and super r=matklad a=djrenren This change follows on the validation of the `crate` keyword in paths. It verifies the following things: `super`: - May only be preceded by other `super` segments - If in a `UseItem` then all semantically preceding paths also consist only of `super` `self` - May only be the start of a path Just a note, a couple times while working on this I found myself really wanting a Visitor of some sort so that I could traverse descendants while skipping sub-trees that are unimportant. Iterators don't really work for this, so as you can see I reached for recursion. Considering paths are generally small a fancy debounced visitor probably isn't important but figured I'd say something in case we had something like this lying around and I wasn't using it. Co-authored-by: John Renner <[email protected]>
| * | | | Validate uses of self and superJohn Renner2020-05-018-74/+177
| | | | |
* | | | | Address commentskjeremy2020-05-012-2/+4
| | | | |
* | | | | Mark most assists as the base "refactor" typekjeremy2020-05-011-9/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Most of them area. We will separate them out later but this gets them to show up in the "refactor" menu of vscode.
* | | | | Advertise support for all the builtin CodeActionKindskjeremy2020-05-011-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | | Even thought we don't return all of these we eventually will so might as well advertise now.
* | | | | Filter out CodeActions if a server only support commands.kjeremy2020-05-013-1/+27
| | | | |
* | | | | Fix pub(self) visibility?Diana2020-05-011-1/+1
| |/ / / |/| | | | | | | | | | | Clippy complained about it and it seems wrong
* | | | Kill more zombiesAleksey Kladov2020-04-302-9/+0
| | | |
* | | | Introduce BlockModifierAleksey Kladov2020-04-302-2/+19
| | | |
* | | | Remove dead code, which elaborately pretends to be aliveAleksey Kladov2020-04-305-48/+10
|/ / /
* | | Fix a bunch of false-positives in join-linesAleksey Kladov2020-04-304-13/+82
| | |
* | | Merge #4153bors[bot]2020-04-303-11/+123
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4153: Add support for incremental text synchronization r=matklad a=lnicola Fixes #3762. This still needs a `ra_vfs` PR, but I want to know I'm on the right track. I tested the change and it didn't crash horribly, but YMMV. Co-authored-by: Laurențiu Nicola <[email protected]>
| * | | Add support for incremental text synchronizationLaurențiu Nicola2020-04-303-11/+123
| | | |
* | | | Merge #4227bors[bot]2020-04-306-81/+116
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4227: Report invalid, nested, multi-segment crate-paths r=matklad a=djrenren There was a bug in the previous path-validating code that didn't detect multi-segment paths that started with `crate`. ```rust // Successfully reported use foo::{crate}; // BUG: was not being reported use foo::{crate::bar}; ``` This was due to my confusion about path-associativity. That is, the path with no qualifier is the innermost path, not the outermost. I've updated the code with a lot of comments to explain what's going on. This bug was discovered when I found an erroneous `ok` test which I reported here: https://github.com/rust-analyzer/rust-analyzer/issues/4226 This test now fails and has been modified, hopefully in the spirit of the original test, to be correct. Sorry about submitting the bug in the first place! Co-authored-by: John Renner <[email protected]>
| * | | | Report invalid, nested, multi-segment crate-pathsJohn Renner2020-04-306-81/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifically, things like: use foo::{crate::bar}; Are now being caught, when before we only caught: use foo::{crate};
* | | | | Special-case try macro_rulesEdwin Cheng2020-04-303-0/+39
|/ / / /
* | | | Special-case try macro to better support 2015 editionAleksey Kladov2020-04-303-0/+52
| | | |
* | | | Merge #4210bors[bot]2020-04-302-0/+65
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4210: Include function qualifiers in signature r=matklad a=oxalica Fixes #2450 It seems there's no test for `ra_ide/display/{short_label,function_signature}`. I'm not sure how to setup it. Manually tested: <img width="428" alt="Screenshot_20200430_004434" src="https://user-images.githubusercontent.com/14816024/80622769-d6f1c200-8a7b-11ea-91f3-e94bfb2703c5.png"> Co-authored-by: oxalica <[email protected]>
| * | | | Add tests of showing function qualifiersoxalica2020-04-301-0/+25
| | | | |
| * | | | Include function qualifiers in signatureoxalica2020-04-291-0/+40
| |/ / /
* | | | Merge #4178bors[bot]2020-04-304-0/+120
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4178: Validate the location of `crate` in paths r=matklad a=djrenren **This solution does not fully handle `use` statements. See below** This pull requests implements simple validation of usages of the `crate` keyword in `Path`s. Specifically it validates that: - If a `PathSegment` is starts with the `crate` keyword, it is also the first segment of the `Path` - All other usages of `crate` in `Path`s are considered errors. This aligns with `rustc`'s rules. Unlike rustc this implementation does not issue a special error message in the case of `::crate` but it does catch the error. Furthermore, this change does not cover all error cases. Specifically the following is not caught: ```rust use foo::{crate} ``` This is because this check is context sensitive. From an AST perspective, `crate` is the root of the `Path`. Only by inspecting the full `UseItem` do we see that it is not in fact the root. This problem becomes worse because `UseTree`s are allowed to be arbitrarily nested: ```rust use {crate, {{crate, foo::{crate}}} ``` So this is a hard problem to solve without essentially a breadth-first search. In a traditional compiler, I'd say this error is most easily found during the AST -> HIR conversion pass but within rust-analyzer I'm not sure where it belongs. Under the implementation in this PR, such errors are ignored so we're *more correct* just not *entirely correct*. Co-authored-by: John Renner <[email protected]>