aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax
Commit message (Collapse)AuthorAgeFilesLines
...
* Improve const generics parsingMichael Chesser2020-01-065-19/+106
| | | | | - Handle const generics type args - Fix issue with const generic as first parameter in trait impl
* BinOp helper to detect assignmentJeremy Kolb2020-01-041-0/+18
|
* remove unused fileAleksey Kladov2020-01-041-6/+0
|
* Switch ast declaration from ron to a macroAleksey Kladov2020-01-032-2214/+1476
|
* Collect visibility of items during nameresFlorian Diebold2019-12-262-3/+6
|
* Add infrastructure for visibility on syntax and hir_def levelFlorian Diebold2019-12-262-1/+32
|
* Remove AsyncOwnerEdwin Cheng2019-12-244-10/+5
|
* Implement infer await from async funcEdwin Cheng2019-12-243-1/+10
|
* Merge #2642bors[bot]2019-12-223-5/+10
|\ | | | | | | | | | | | | | | 2642: Use name instead of ident in parser for macro 2.0 syntax r=matklad a=edwin0cheng Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
| * Use name instead of ident for macro 2.0 sytnaxEdwin Cheng2019-12-223-5/+10
| |
* | Merge #2641bors[bot]2019-12-224-0/+59
|\ \ | |/ |/| | | | | | | | | | | | | | | | | 2641: Parse const generics r=matklad a=roblabla Adds very primitive support for parsing const generics (`const IDENT: TY`) so that rust-analyzer stops complaining about the syntax being invalid. Fixes #1574 Fixes #2281 Co-authored-by: roblabla <unfiltered@roblab.la>
| * Parse const genericsroblabla2019-12-224-0/+59
| | | | | | | | | | Fixes #1574 Fixes #2281
* | Merge #2628bors[bot]2019-12-218-329/+243
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2628: Add macro 2.0 support in parser r=matklad a=edwin0cheng This PR added a new syntax kind : `MACRO_DEF` and a keyword `MACRO_KW` there are two syntax for declarative macro 2.0 : 1. Normal : `macro m { ($i:ident) => {} }` , which handle similar to legacy one. 2. Call like: `macro m($i:ident) {}`, it produces a single token tree which have two child token trees : `($i:ident)` and `{}` Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
| * | Add macro 2.0 support in parserEdwin Cheng2019-12-218-329/+243
| | |
* | | Clippy lintskjeremy2019-12-201-2/+1
|/ /
* | Handle closure return typesFlorian Diebold2019-12-202-1/+4
| | | | | | | | Fixes #2547.
* | Fix parser for macro call in pattern positionEdwin Cheng2019-12-201-5/+4
| |
* | Use unwrap_or_defaultkjeremy2019-12-201-2/+2
|/
* Improve recovery for incomplete lambdasAleksey Kladov2019-12-172-0/+88
|
* Avoid recompiling serdeAleksey Kladov2019-12-121-3/+4
|
* DynMapAleksey Kladov2019-12-061-2/+12
| | | | | This might, or might not help us to reduce boilerplate associated with plumbing values from analysis to the IDE layer
* :arrow_up: rowanAleksey Kladov2019-12-043-8/+8
|
* Add `ModuleItemsOwner` to `Block`ice10002019-12-032-2/+4
|
* Fix hir for ast::UnionDefAleksey Kladov2019-11-253-19/+29
|
* Introduce dedicated AST node for unionAleksey Kladov2019-11-254-3/+41
| | | | | | | | | | Although structs and unions have the same syntax and differ only in the keyword, re-using the single syntax node for both of them leads to confusion in practice, and propagates further down the hir in an upleasent way. Moreover, static and consts also share syntax, but we use different nodes for them.
* Merge #2343bors[bot]2019-11-243-4/+25
|\ | | | | | | | | | | | | | | | | | | 2343: implement assist invert_if r=matklad a=bravomikekilo fix [issue 2219 invert if condition](https://github.com/rust-analyzer/rust-analyzer/issues/2219) I put the assist cursor range to `if` of the if expression, because both condition and body will be replaced. Is there any way to replace them without cover the cursor position? @matklad Co-authored-by: bravomikekilo <bmk1221@126.com>
| * do refact and fix some issuebravomikekilo2019-11-243-4/+25
| |
* | Uniformalize namingAleksey Kladov2019-11-221-2/+2
|/
* Next gen IDs for functionsAleksey Kladov2019-11-201-1/+9
| | | | | | | | | | | | | | | | | The current system with AstIds has two primaraly drawbacks: * It is possible to manufacture IDs out of thin air. For example, it's possible to create IDs for items which are not considered in CrateDefMap due to cfg. Or it is possible to mixup structs and unions, because they share ID space. * Getting the ID of a parent requires a secondary index. Instead, the plan is to pursue the more traditional approach, where each items stores the id of the parent declaration. This makes `FromSource` more awkward, but also more correct: now, to get from an AST to HIR, we first do this recursively for the parent item, and the just search the children of the parent for the matching def
* Allow non-path default type parametersAleksey Kladov2019-11-203-9/+9
|
* :arrow_up: rowanAleksey Kladov2019-11-193-19/+18
|
* Remove the custom impl of AttrsOwner for ImplItemDJMcNab2019-11-183-12/+4
| | | | | | The default impl should have the same behaviour, and it can be generated by codegen. See also `ModuleItem` and `NominalDef`
* Disable doctestsAleksey Kladov2019-11-171-0/+3
|
* Add ast for plain and raw string literalsAleksey Kladov2019-11-161-10/+85
|
* Force passing Source when creating a SourceAnalyzerAleksey Kladov2019-11-151-2/+4
|
* Attempt to implement typed accessorsGeoffry Song2019-11-154-8/+50
|
* Move inclusive range check to validationGeoffry Song2019-11-154-8/+33
|
* Fix parsing of "postfix" range expressions.Geoffry Song2019-11-156-0/+118
| | | | | | | | | | Right now they are handled in `postfix_dot_expr`, but that doesn't allow it to correctly handle precedence. Integrate it more tightly with the Pratt parser instead. Also includes a drive-by fix for parsing `match .. {}`. Fixes #2242.
* Make make:: builders slightly more convenientAleksey Kladov2019-11-132-9/+12
|
* Use strongly-typed ast building for early-return assistAleksey Kladov2019-11-131-21/+31
|
* Forbid visibility qualifiers in traitsAleksey Kladov2019-11-114-1/+131
|
* Merge #2149bors[bot]2019-11-041-0/+17
|\ | | | | | | | | | | | | | | | | | | | | | | | | 2149: Handle IfLet in convert_to_guarded_return. r=matklad a=krk Fixes https://github.com/rust-analyzer/rust-analyzer/issues/2124 I could not move the cursor position out of `let`: `le<|>t` vs `let<|>`. Also, please suggest extra test cases. Co-authored-by: krk <keremkat@gmail.com>
| * Support paths other than "Some".krk2019-11-011-2/+3
| |
| * Handle IfLet in convert_to_guarded_return.krk2019-10-311-0/+16
| |
* | Attach docs to staticskjeremy2019-10-312-1/+15
| |
* | traits => match_ast!kjeremy2019-10-301-5/+7
|/
* Document match_ast!kjeremy2019-10-301-0/+14
|
* Some clippy fixeskjeremy2019-10-301-2/+2
|
* fix parsing of for loops inside expressionsAleksey Kladov2019-10-283-48/+149
| | | | closes #2051
* Preserve whitespace at the end of doc commentsJeremy Kolb2019-10-272-4/+27
| | | | | | | | Whitespace can have special meaning in markdown. For instance ending a line with three spaces will render a new line. Note that this behavior diverges from RLS. Fixes #1997