aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/grammar
Commit message (Collapse)AuthorAgeFilesLines
* Enable parsing of attributes inside a match blockVille Penttinen2019-02-172-0/+43
| | | | | | | We allow invalid inner attributes to be parsed, e.g. inner attributes that are not directly after the opening brace of the match block. Instead we run validation on `MatchArmList` to allow better reporting of errors.
* make macro a NameOwnerAleksey Kladov2019-02-111-1/+3
|
* Fix handling of literal patternsFlorian Diebold2019-02-091-15/+26
| | | | | Wrap them in a LiteralPat node so they can be distinguished from literal expressions.
* reformat the worldAleksey Kladov2019-02-085-33/+7
|
* Add AST for extern crateFlorian Diebold2019-02-041-1/+1
| | | | Also change it to parse the crate name as a NAME_REF, not a NAME.
* Merge #692bors[bot]2019-01-312-0/+9
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 692: [WIP] Correctly parse attributes r=matklad a=DJMcNab Reference - https://doc.rust-lang.org/reference/attributes.html This fixes/investigates inner attributes for: - [x] `impl` blocks - [x] `extern` blocks - [x] `fn`s (fixes #689) - [x] `mod`s (already supported) - [x] 'block expressions' (the long text just describes all 'blocks' used as statements) This also investigates/fixes outer attributes for: - [ ] 'most statements' (see also: #685, https://doc.rust-lang.org/reference/expressions.html#expression-attributes) - [x] Enum variants, Struct and Union fields (Fixed in #507) - [ ] 'Match expression arms' (@matklad can you provide a test case which explains what this means?) - [ ] 'Generic lifetime or type parameters' - [ ] 'Elements of array expressions, tuple expressions, call expressions, tuple-style struct and enum variant expressions' - [ ] 'The tail expression of block expressions' Co-authored-by: DJMcNab <[email protected]>
| * Parse and validate attributes in blocksDJMcNab2019-01-281-0/+2
| |
| * Correctly parse inner attributes of impl blocksDJMcNab2019-01-271-0/+7
| |
* | Infer type of match guardMarcus Klaas de Vries2019-01-281-2/+16
|/
* Stop using let_stmt twiceDJMcNab2019-01-271-43/+41
|
* Make attrs be a child of the let statementDJMcNab2019-01-262-7/+10
|
* Support attributes on let statementsDJMcNab2019-01-261-20/+30
|
* Struct literals should not be a `BlockLike::Block`DJMcNab2019-01-261-1/+1
|
* Merge #660bors[bot]2019-01-261-1/+23
|\ | | | | | | | | | | | | | | 660: Support macro calls in type position r=matklad a=regiontog A [playground](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=fdc6dd4ddaece92a72fa2a292b75e27c) demonstrating the syntax in question. Co-authored-by: Erlend Tobiassen <[email protected]>
| * Support macro calls in type positionErlend Tobiassen2019-01-251-1/+23
| |
* | rename POS_FIELD -> POS_FIELD_DEFAleksey Kladov2019-01-251-5/+5
|/ | | | to match NAMED_FIELD_DEF
* ReformatDJMcNab2019-01-241-15/+16
|
* Apply suggestions from code reviewDaniel McNab2019-01-241-2/+1
| | | Co-Authored-By: DJMcNab <[email protected]>
* Dedupe PATH_FIRST in ATOM_EXPR_FIRSTDJMcNab2019-01-241-7/+2
|
* Support universal function call syntax in function callsDJMcNab2019-01-242-0/+3
|
* Add test for placeholder parameters in trait fn defsErlend Tobiassen2019-01-221-0/+5
|
* Allow placeholder parameters in trait fn defsErlend Tobiassen2019-01-221-1/+1
|
* No need for is_type_startErlend Tobiassen2019-01-222-9/+1
|
* Prefer TYPE_FIRSTErlend Tobiassen2019-01-221-4/+4
|
* Update tests after allowing where predicate to accept typesErlend Tobiassen2019-01-221-0/+5
|
* Optimistically bail out of where clause loop if not at start of a type or ↵Erlend Tobiassen2019-01-222-12/+24
| | | | lifetime
* Don't leave a marker hanging without completing it.Erlend Tobiassen2019-01-221-2/+1
|
* Allow types to the left of : in where predicates.Erlend Tobiassen2019-01-221-24/+27
|
* Change parsing of struct field patternsMarcus Klaas de Vries2019-01-191-12/+11
|
* Move parsing of field pattern lists to the parser (where it belongs)Marcus Klaas de Vries2019-01-191-9/+17
|
* make token set a const-fnAleksey Kladov2019-01-195-42/+33
|
* Fix handling of attributes in positional field listsDJMcNab2019-01-121-0/+10
|
* Fix handling of where clauses in tuple structsDJMcNab2019-01-101-0/+4
|
* Rename traits::impl_item -> impl_block as well, as well as the testsFlorian Diebold2019-01-042-4/+4
|
* Rename ImplItem to ImplBlockFlorian Diebold2019-01-041-1/+1
| | | | | rustc uses the name ImplItem for items in impls, not the impl {} block itself, which could lead to confusion.
* parse minus before number literalcsmoe2018-12-301-0/+5
|
* Improve parsing of incomplete field accesses in preparation for field completionFlorian Diebold2018-12-251-9/+7
| | | | | We need to be able to get the receiver even if there is no field name yet, and currently "a." wouldn't get parsed as a field name at all. This seems to help.
* Fix where clauses using fully qualified path syntaxDJMcNab2018-12-211-1/+6
|
* Fix parsing of contextual_keyword unionDJMcNab2018-12-201-1/+1
|
* Use a better way of skipping SEMIsDJMcNab2018-12-201-6/+6
|
* Support a blank expression before a semicolonDJMcNab2018-12-201-0/+6
|
* Fix the tests and fix the precommit hookDJMcNab2018-12-206-9/+9
|
* Fix missing DOTDOTEQsDJMcNab2018-12-201-3/+3
|
* Don't require a command before EQ in a where clauseDJMcNab2018-12-201-1/+1
|
* Simplify NO_BLOCK testingDJMcNab2018-12-202-11/+3
|
* Fix ambiguity with if breakDJMcNab2018-12-202-5/+21
| | | | Brought up by #290
* Add tests and only traverse in the crates directoryDJMcNab2018-12-192-2/+7
|
* Move is_block to lower in the call treeDJMcNab2018-12-192-54/+43
|
* Revert "Revert to f6f7c5"DJMcNab2018-12-192-19/+36
| | | | | | This approach is correct, but it needs an addition to Restrictions too This reverts commit ad00d0c8a5f64142e6636e8b048204c8f8982f4a.
* Fix handling of structs in match armsDJMcNab2018-12-191-1/+1
|