about summary refs log tree commit diff
path: root/crates/syntax/src/ast/generated
AgeCommit message (Collapse)AuthorLines
2022-05-13Revert "Auto merge of #12149 - jonas-schievink:literally-just-a-literal, ↵Jonas Schievink-40/+4
r=jonas-schievink" This reverts commit cc9ae2b89e01a30e441371b9fd3376c3d03a475f, reversing changes made to 7dfd1cb572d8d4fd951237361e43ecddd9c9a852.
2022-05-05Indicate the number of float tokens in the first tokenJonas Schievink-1/+10
2022-05-05Split float literal tokens at the `.`Jonas Schievink-6/+7
2022-05-05Wrap float literals in their own nodeJonas Schievink-0/+26
2022-05-05Lower values of char and byte literalsLaurențiu Nicola-0/+42
2022-04-17update grammer to support associated const equalityXFFXFF-0/+1
2022-04-10Parse for<'a> closure syntaxLukas Wirth-0/+2
2022-04-05Wrap macros in expr position in `MacroExpr` nodeJonas Schievink-6/+30
2022-03-05fix: Recognize `Self` as a proper keywordLukas Wirth-0/+2
2022-03-05Merge #11598bors[bot]-1/+34
11598: feat: Parse destructuring assignment r=Veykril a=ChayimFriedman2 Part of #11532. Lowering is not as easy and may not even be feasible right now as it requires generating identifiers: `(a, b) = (b, a)` is desugared into ```rust { let (<gensym_a>, <gensym_b>) = (b, a); a = <gensym_a>; b = <gensym_b>; } ``` rustc uses hygiene to implement that, but we don't support hygiene yet. However, I think parsing was the main problem as lowering will just affect type inference, and while `{unknown}` is not nice it's much better than a syntax error. I'm still looking for the best way to do lowering, though. Fixes #11454. Co-authored-by: Chayim Refael Friedman <chayimfr@gmail.com>
2022-03-02Parse destructuring assignmentChayim Refael Friedman-1/+33
The only patterns we should parse are `..` in structs and `_`: the rest are either not supported or already valid expressions.
2022-02-26Fix body selection in while loopsLaurențiu Nicola-1/+0
2022-02-25Generate AST code after rust-analyzer/ungrammar#46Chayim Refael Friedman-0/+1
2022-02-21Parse `let` expressions in order to support `let` chainsChayim Refael Friedman-34/+39
We still need to reject freestanding `let` expressions: see https://github.com/rust-analyzer/rust-analyzer/issues/11320#issuecomment-1018212465.
2022-01-08Allow doc comments on all `Item`sJonas Schievink-4/+9
2022-01-07Generate `AnyHasDocComments` nodeLukas Wirth-0/+45
2021-10-30Fix for-loop expressions breaking with BlockExpr iterableLukas Wirth-1/+0
2021-10-28Refactor ide handling for paths in derive inputsLukas Wirth-0/+21
2021-10-19internal: Parse const trait boundsLukas Wirth-0/+2
2021-10-07Support `let...else`Jonas Schievink-0/+26
2021-10-06Merge #10420bors[bot]-1/+3
10420: Parse outer attributes on StructPatternEtCetera r=jonas-schievink a=XFFXFF Try to fix https://github.com/rust-analyzer/rust-analyzer/issues/8610 Related pr in ungrammer: https://github.com/rust-analyzer/ungrammar/pull/41 Co-authored-by: zhoufan <1247714429@qq.com>
2021-10-02minor: regenAleksey Kladov-0/+149
2021-10-02Parse outer attributes on StructPatternEtCeterazhoufan-1/+3
2021-09-27Rename `*Owner` traits to `Has*`Lukas Wirth-184/+184
2021-09-27Rename `Dyn*` nodes to `Any*` nodesLukas Wirth-56/+56
2021-09-26internal: more reasonable grammar for blocksAleksey Kladov-45/+37
Consider these expples { 92 } async { 92 } 'a: { 92 } #[a] { 92 } Previously the tree for them were BLOCK_EXPR { ... } EFFECT_EXPR async BLOCK_EXPR { ... } EFFECT_EXPR 'a: BLOCK_EXPR { ... } BLOCK_EXPR #[a] { ... } As you see, it gets progressively worse :) The last two items are especially odd. The last one even violates the balanced curleys invariant we have (#10357) The new approach is to say that the stuff in `{}` is stmt_list, and the block is stmt_list + optional modifiers BLOCK_EXPR STMT_LIST { ... } BLOCK_EXPR async STMT_LIST { ... } BLOCK_EXPR 'a: STMT_LIST { ... } BLOCK_EXPR #[a] STMT_LIST { ... }
2021-09-21SimplifyLukas Wirth-105/+8
2021-09-21SimplifyLukas Wirth-153/+105
2021-09-21Generate ast nodes for each ast traitLukas Wirth-0/+398
2021-08-13Support `if let` match guardsJonas Schievink-0/+3
2021-07-18Support GATs for associated type arg parsingLukas Wirth-25/+26
2021-07-03internal: overhaul code generationAleksey Kladov-2/+2
* Keep codegen adjacent to the relevant crates. * Remove codgen deps from xtask, speeding-up from-source installation. This regresses the release process a bit, as it now needs to run the tests (and, by extension, compile the code).
2021-06-11Update ungrammarJonas Schievink-4/+27
2021-03-19Parse extended_key_value_attributesLukas Wirth-23/+23
2021-03-16Fix macro expansion for statements w/o semicolonEdwin Cheng-2/+8
2021-02-07AdtDef -> AdtAleksey Kladov-19/+19
2021-01-18Add `MacroType` syntaxJonas Schievink-2/+31
2021-01-15Wrap remaining self/super/crate in Name{Ref}Lukas Wirth-5/+2
2021-01-15Handle self/super/crate in PathSegment as NameRefLukas Wirth-3/+3
2021-01-15Add support for yiled keywordDaiki Ihara-1/+33
2021-01-05Rename expr -> tail_exprAleksey Kladov-1/+1
2020-12-23Update ungrammar for const block patternsLukas Wirth-1/+32
2020-12-16Node-ify lifetimesLukas Wirth-27/+35
2020-12-15Basic support for decl macros 2.0Jonas Schievink-1/+35
2020-12-15Move to upstream `macro_rules!` modelJonas Schievink-5/+38
2020-11-06Kill RAW_ literalsAleksey Kladov-4/+4
Syntactically, they are indistinguishable from non-raw versions, so it doesn't make sense to separate then *at the syntax* level.
2020-11-06Generate token for ints and floatsAleksey Kladov-0/+42
2020-08-27:arrow_up: cratesAleksey Kladov-1/+1
2020-08-24Support extern typesJonas Schievink-1/+7
2020-08-21:arrow_up: ungrammarAleksey Kladov-1/+2