aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | 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
| | | |
* | | | Merge #4161bors[bot]2020-04-286-43/+54
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4161: lsp-types 0.74 r=kjeremy a=kjeremy * Fixes a bunch of param types to take partial progress into account. * Will allow us to support insert/replace text in completions Co-authored-by: kjeremy <[email protected]>
| * | | | lsp-types 0.74kjeremy2020-04-266-43/+54
| | |/ / | |/| | | | | | | | | | | | | | * Fixes a bunch of param types to take partial progress into account. * Will allow us to support insert/replace text in completions
* | | | Merge #4193bors[bot]2020-04-281-56/+61
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4193: Make it impossible to forget to add a semantic token type / modifier r=kjeremy a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | Make it impossible to forget to add a semantic token type / modifierAleksey Kladov2020-04-281-56/+61
| | |_|/ | |/| |
* | | | Merge #4184bors[bot]2020-04-282-10/+22
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4184: Treat comments beginning with four slashes as regular line comments r=kjeremy a=adamrk Addresses https://github.com/rust-analyzer/rust-analyzer/issues/4040 Co-authored-by: adamrk <[email protected]>
| * | | | Fix comment prefix method for four slash commentsadamrk2020-04-281-10/+6
| | | | |
| * | | | Treat comments beginning with four slashes as regular line commentsadamrk2020-04-282-0/+16
| | | | |
* | | | | Merge #4148bors[bot]2020-04-281-24/+21
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4148: Simplify profiler impl (bubble up Option) r=matklad a=Veetaha Co-authored-by: veetaha <[email protected]>
| * | | | Simplify profiler impl (bubble up Option and shorten codeveetaha2020-04-251-24/+21
| | | | |
* | | | | Introduce new semantic highlight token for format specifierLeander Tentrup2020-04-289-37/+48
| |/ / / |/| | |
* | | | Merge #4173bors[bot]2020-04-272-37/+109
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4173: Use core instead of std for builtin derive macros r=edwin0cheng a=edwin0cheng Fixed #4087. We can't use `$crate` here right now because : 1. We have to able to detect `macro` 2.0 in collecting phase for finding `rustc_builtin_macro` attrs. 2. And we have to make hygiene works for builtin derive macro. r= @flodiebold Co-authored-by: Edwin Cheng <[email protected]>
| * | | Check dep name to detect it is coreEdwin Cheng2020-04-271-4/+6
| | | |
| * | | Use empty-deps tricks to detect it is coreEdwin Cheng2020-04-272-11/+26
| | | |
| * | | Add testEdwin Cheng2020-04-272-1/+27
| | | |
| * | | Use core instead of std for builtin derive macrosEdwin Cheng2020-04-272-36/+65
| | |/ | |/|
* / | For associated type shorthand (T::Item), use the substs from the where clauseFlorian Diebold2020-04-264-13/+119
|/ / | | | | | | | | So e.g. if we have `fn foo<T: SomeTrait<u32>>() -> T::Item`, we want to lower that to `<T as SomeTrait<u32>>::Item` and not `<T as SomeTrait<_>>::Item`.
* | Merge #4155bors[bot]2020-04-263-35/+44
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4155: Precompute expected type during completion r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Precompute expected type during completionAleksey Kladov2020-04-263-35/+44
| |/
* / Add `cargo test` to the list of Run commandsAleksey Kladov2020-04-263-62/+63
|/
* Fix broken testJonas Schievink2020-04-251-1/+1
|
* Don't add call parens when an fn type is expectedJonas Schievink2020-04-252-0/+63
|
* Merge #4145bors[bot]2020-04-257-398/+345
|\ | | | | | | | | | | | | | | | | | | | | 4145: Remove dead code r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>