aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/ast
Commit message (Collapse)AuthorAgeFilesLines
* Support raw_ref_op's raw reference operatorrobojumper2020-05-281-0/+3
|
* Update to rustc_lexer version 660.Julian Wollersberger2020-05-241-2/+3
| | | | Change `unescape_*()` to `unescape_literal()`.
*-. Merge #4521 #4522bors[bot]2020-05-202-27/+53
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4521: Use snippets in add_function r=matklad a=matklad bors r+ 🤖 4522: Explain the purpose of `ast::make` module more clearly r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| | * Explain the purpose of `ast::make` module more clearlyAleksey Kladov2020-05-201-4/+7
| |/ |/|
| * Moderate cleanup of add_functionAleksey Kladov2020-05-202-23/+46
|/
* Change type_arg to type_ref funcFedor Sakharov2020-05-141-2/+2
|
* Correctly fill default type parametersFedor Sakharov2020-05-131-0/+4
|
* Merge #4083bors[bot]2020-05-131-138/+1366
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4083: Smol documentation for ast nodes r=matklad a=Veetaha There is a tremendous amount of TODOs to clarify the topics I am not certain about. Please @matklad, @edwin0cheng review carefully, I even left some mentions of your names in todos to put your attention where you most probably can give comments. In order to simplify the review, I separated the codegen (i.e. changes in `ast/generated/nodes.rs`) from `ast_src` changes (they in fact just duplicate one another) into two commits. Also, I had to hack a little bit to let the docs be generated as doc comments and not as doc attributes because it's easier to read them this way and IIRC we don't support hints for `#[doc = ""]` attributes for now... Closes #3682 Co-authored-by: veetaha <[email protected]>
| * Remove an equals sign from `ConstArg` (this probably pertains only to ↵veetaha2020-05-121-1/+0
| | | | | | | | | | | | ConstParam) (As per matklad)
| * Convert TODO to a Note(matklad)veetaha2020-05-121-0/+1
| |
| * Convert to TODOs to FIXMEs as per matkladveetaha2020-05-121-4/+2
| |
| * Revert "Remove MacroStmts as per edwin0cheng" (cc @edwin0cheng) and add a ↵veetaha2020-05-121-0/+32
| | | | | | | | | | | | | | | | | | | | fixme to document it. This reverts commit 7a49165f5d5c8186edd04f874eae8a98e39d3df6. MacroStmts ast node is not used by itself, but it pertains to SyntaxNodeKind MACRO_STMTS that is used by ra_paser, so even tho the node itself is not used, it is better to keep it with a FIXME to actually add a doc comment when it becomes useful.
| * Add a doc comment on the difference between Name and NameRef ast nodesveetaha2020-05-121-1/+16
| |
| * 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
|/
* 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 branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-05-021-0/+4
|\
| * 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
| | |
* | | Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-05-025-57/+69
|\| |
| * | Add missing members generates indented blocksAleksey Kladov2020-05-021-8/+0
| | |
| * | Introduce EffectExprAleksey Kladov2020-05-024-60/+60
| | |
| * | Revert "Merge #4233"Aleksey Kladov2020-05-022-23/+41
| | | | | | | | | | | | | | | This reverts commit a5f2b16366f027ad60c58266a66eb7fbdcbda9f9, reversing changes made to c96b2180c1c4206a0a98c280b4d30897eb116336.
| * | Merge #4246bors[bot]2020-05-011-0/+2
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-011-0/+2
| | | |
| * | | Fix pub(self) visibility?Diana2020-05-011-1/+1
| | |/ | |/| | | | | | | Clippy complained about it and it seems wrong
* | | Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-05-014-52/+35
|\| |
| * | Introduce BlockModifierAleksey Kladov2020-04-301-1/+16
| | |
| * | 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 #4178bors[bot]2020-04-301-0/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>