aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | 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]>
| * | | Validate the location of `crate` in pathsJohn Renner2020-04-294-0/+120
| | | |
* | | | if let -> matchJonas Schievink2020-04-291-4/+3
| | | |
* | | | ?Jonas Schievink2020-04-291-5/+1
| | | |
* | | | Use or-patterns moreJonas Schievink2020-04-291-10/+9
| | | |
* | | | Remove `.clone()`Jonas Schievink2020-04-291-8/+8
| | | |
* | | | Rename to associated_type_shorthand_candidatesJonas Schievink2020-04-293-29/+30
| | | |
* | | | Complete assoc. items on type parametersJonas Schievink2020-04-295-69/+408
| |/ / |/| |
* | | Merge #4119bors[bot]2020-04-294-65/+110
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4119: Cache proc-macro dlls r=matklad a=edwin0cheng This PR try to fix a deadlock in proc-macro srv by not unloading dlls. Currently we load and unload dlls for each request, however rustc TLS is leaky , such that if we do it a lot of times, all TLS index will be consumed and it will be deadlocked inside panic (it is because panic itself is using TLS too). Co-authored-by: Edwin Cheng <[email protected]>
| * | | Generate uniq nameEdwin Cheng2020-04-261-3/+11
| | | |
| * | | Simpify codeEdwin Cheng2020-04-262-16/+12
| | | |
| * | | FixEdwin Cheng2020-04-261-0/+6
| | | |
| * | | Compare timestampEdwin Cheng2020-04-261-2/+8
| | | |
| * | | Copy dylib to temp directoryEdwin Cheng2020-04-261-1/+18
| | | |
| * | | Cacheproc-macro dllsEdwin Cheng2020-04-264-58/+70
| | | |
* | | | More principled approach for finding From traitAleksey Kladov2020-04-294-39/+95
| | | |
* | | | Merge #4204bors[bot]2020-04-294-54/+144
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4204: Use specific pattern when translating if-let-else to match r=matklad a=matklad We *probably* should actually use the same machinery here, as we do for fill match arms, but just special-casing options and results seems to be a good first step. bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | Use specific pattern when translating if-let-else to matchAleksey Kladov2020-04-294-20/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We *probably* should actually use the same machinery here, as we do for fill match arms, but just special-casing options and results seems to be a good first step.
| * | | | Move shared assist code to utilsAleksey Kladov2020-04-293-48/+35
| | | | |
* | | | | Better filtering of qualified enum variants in completionAleksey Kladov2020-04-292-9/+49
|/ / / /
* | | | Complete union fields after dotJonas Schievink2020-04-282-12/+53
| | | |