about summary refs log tree commit diff
path: root/crates/parser/src/grammar/expressions
AgeCommit message (Collapse)AuthorLines
2022-05-13Revert "Auto merge of #12149 - jonas-schievink:literally-just-a-literal, ↵Jonas Schievink-38/+2
r=jonas-schievink" This reverts commit cc9ae2b89e01a30e441371b9fd3376c3d03a475f, reversing changes made to 7dfd1cb572d8d4fd951237361e43ecddd9c9a852.
2022-05-05Maybe everything else *should* have to deal with itJonas Schievink-5/+3
2022-05-05Indicate the number of float tokens in the first tokenJonas Schievink-8/+28
2022-05-05Wrap floats in token trees in `FLOAT_LITERAL` nodeJonas Schievink-10/+14
2022-05-05Split float literal tokens at the `.`Jonas Schievink-3/+11
2022-05-05Wrap float literals in their own nodeJonas Schievink-1/+7
2022-04-10Parse for<'a> closure syntaxLukas Wirth-42/+38
2022-04-05Wrap macros in expr position in `MacroExpr` nodeJonas Schievink-1/+3
2022-03-02Parse destructuring assignmentChayim Refael Friedman-0/+11
The only patterns we should parse are `..` in structs and `_`: the rest are either not supported or already valid expressions.
2022-02-21Parse `let` expressions in order to support `let` chainsChayim Refael Friedman-20/+13
We still need to reject freestanding `let` expressions: see https://github.com/rust-analyzer/rust-analyzer/issues/11320#issuecomment-1018212465.
2022-02-14Fix stylebellau-8/+4
2022-02-13oops, remove printlnbellau-1/+0
2022-02-13fix handle static async and static async movebellau-2/+17
2022-02-12support static move toobellau-2/+4
2022-02-12Fix Immovable generator syntax (static ||) not recognized #11448bellau-0/+4
2021-10-23internal: remove unused dollarsAleksey Kladov-27/+1
2021-10-03Add semicolons for consistencyAramis Razzaghipour-3/+3
`clippy::semicolon_if_nothing_returned`
2021-10-02minorAleksey Kladov-1/+1
2021-09-26internal: more reasonable grammar for blocksAleksey Kladov-17/+23
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-25feat: allow attributes on all expressionsAleksey Kladov-8/+11
Attrs are syntactically valid on any expression, even if they are not allowed semantically everywhere yet.
2021-08-13Support `if let` match guardsJonas Schievink-0/+5
2021-07-30SimplifyLukas Wirth-4/+2
2021-07-29Attach comma token to MATCH_ARM instead of MATCH_ARM_LISTLukas Wirth-16/+16
2021-06-03Apply a few clippy suggestionsClemens Wasser-5/+3
2021-05-22Add even more docsAleksey Kladov-2/+0
2021-01-15Add support for yiled keywordDaiki Ihara-0/+16
2021-01-10Replace SyntaxKind usage with T! macro where applicableLukas Wirth-2/+10
2020-12-23Parse const effect blockLukas Wirth-0/+9
2020-12-20Parse attributes in tuple expressionsLukas Wirth-3/+5
2020-12-16Node-ify lifetimesLukas Wirth-6/+10
2020-11-06Kill RAW_ literalsAleksey Kladov-12/+2
Syntactically, they are indistinguishable from non-raw versions, so it doesn't make sense to separate then *at the syntax* level.
2020-08-27CONST LOOPS ARE HEREAleksey Kladov-6/+6
2020-08-13Align parser names with grammarAleksey Kladov-10/+10
2020-08-12Rename ra_parser -> parserAleksey Kladov-0/+611