aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
Commit message (Collapse)AuthorAgeFilesLines
...
| * Resolve TODO about macro 2.0 defveetaha2020-05-101-6/+4
| |
| * Fix typoveetaha2020-05-101-1/+1
| |
| * Carify on a semicolon in macro callveetaha2020-05-101-1/+6
| |
| * Resolve TODO about curly-braced constructions in expression statementveetaha2020-05-101-1/+3
| |
| * Resolve todos about refs and empty statementsveetaha2020-05-101-4/+4
| |
| * Converted TODO about MacroItems to FIXME as per edwin0chengveetaha2020-05-101-6/+2
| |
| * Verified ConstArg example, waiting for response on what `=` sign pertains toveetaha2020-05-101-1/+1
| |
| * Correcy use tree and type args docsveetaha2020-05-101-3/+3
| |
| * Correct `use` cannot have type args as per flodieboldveetaha2020-05-101-1/+1
| |
| * Correct path docs and add colon2 token to Path ast nodeveetaha2020-05-101-8/+14
| |
| * Add example with const in TypeBound as per flodieboldveetaha2020-05-101-1/+1
| |
| * Properly document const impl as per flodieboldveetaha2020-05-101-2/+2
| |
| * Remove MacroStmts as per edwin0chengveetaha2020-05-101-32/+0
| |
| * Add proper docs for TokenTree as per edwin0chengveetaha2020-05-101-1/+2
| |
| * Run codegen of ast types with documentationveetaha2020-05-101-138/+1345
| |
* | Merge #4396bors[bot]2020-05-101-1/+6
|\ \ | |/ |/| | | | | | | | | | | 4396: Improve panic message for ast_from_text r=jonas-schievink a=edwin0cheng Related: #4368 Co-authored-by: Edwin Cheng <[email protected]>
| * Improve panic message for ast_from_textEdwin Cheng2020-05-091-1/+6
| |
* | unindent -> dedentAleksey Kladov2020-05-091-1/+1
| |
* | More fluent indent APIAleksey Kladov2020-05-091-13/+13
|/
* Use more natural signature for Edit::applyAleksey Kladov2020-05-052-6/+11
|
* Rename AtomTextEdit -> IndelAleksey Kladov2020-05-053-18/+18
|
* Rename ImplItem to AssocItemEdwin Cheng2020-05-052-21/+21
|
* Add documents owner for ImplDef and SourceFileEdwin Cheng2020-05-031-0/+2
|
* Fix the extension methodKirill Bulatov2020-05-021-1/+1
|
*-. Merge #4207 #4253bors[bot]2020-05-021-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4207: Add unwrap block assist #4156 r=matklad a=bnjjj close issue #4156 4253: Remove `workspaceLoaded` setting r=matklad a=eminence The `workspaceLoaded` notification setting was originally designed to control the display of a popup message that said: "workspace loaded, {} rust packages" This popup was removed and replaced by a much sleeker message in the VSCode status bar that provides a real-time status while loading: rust-analyzer: {}/{} packages This was done as part of #3587 The change in this PR simply renames this setting from `workspaceLoaded` to `progress` to better describe what it actually controls. At the moment, the only type of progress message that is controlled by this setting is the initial load messages, but in theory other messages could also be controlled by this setting. Reviewer notes: * If we didn't like the idea of causing minor breaking to user's config, we could keep the setting name as `workspaceLoaded` * I think we can now close both #2719 and #3176 since the notification dialog in question no longer exists (actually I think you can close those issues even if you reject this PR 😄 ) Co-authored-by: Benjamin Coenen <[email protected]> Co-authored-by: Andrew Chin <[email protected]>
| * \ Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-05-021-0/+4
| |\ \
| * \ \ Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-05-02200-10752/+10539
| |\ \ \
| * \ \ \ Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-05-0114-78/+296
| |\ \ \ \
| * | | | | Add unwrap block assist #4156Benjamin Coenen2020-04-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | | | | | Fix parsing of blocks without `{`Aleksey Kladov2020-05-025-25/+78
| |_|_|/ / |/| | | |
* | | | | Merge #4234bors[bot]2020-05-021-0/+4
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-021-0/+4
| | |/ / | |/| |
* | | | Add missing members generates indented blocksAleksey Kladov2020-05-021-8/+0
| | | |
* | | | Cleanup inline testsAleksey Kladov2020-05-028-30/+59
| | | |
* | | | Update test dataAleksey Kladov2020-05-02178-10580/+10223
| | | |
* | | | Introduce EffectExprAleksey Kladov2020-05-027-76/+73
| | | |
* | | | Revert "Merge #4233"Aleksey Kladov2020-05-023-26/+42
| |_|/ |/| | | | | | | | | | | This reverts commit a5f2b16366f027ad60c58266a66eb7fbdcbda9f9, reversing changes made to c96b2180c1c4206a0a98c280b4d30897eb116336.
| | |
| \ \
*-. \ \ Merge #4220 #4240bors[bot]2020-05-012-17/+24
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-012-17/+24
| |/ /
* | | 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
| | | |
* | | | Fix pub(self) visibility?Diana2020-05-011-1/+1
| |/ / |/| | | | | | | | Clippy complained about it and it seems wrong
* | | Introduce BlockModifierAleksey Kladov2020-04-302-2/+19
| | |
* | | Remove dead code, which elaborately pretends to be aliveAleksey Kladov2020-04-302-40/+7
|/ /
* | Fix a bunch of false-positives in join-linesAleksey Kladov2020-04-302-1/+5
| |
* | Merge #4227bors[bot]2020-04-305-80/+115
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-305-80/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-302-0/+28
|/ /
* | Special-case try macro to better support 2015 editionAleksey Kladov2020-04-302-0/+36
| |
* | 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]>