aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/ast
Commit message (Collapse)AuthorAgeFilesLines
* rename type to type_alias in the AST as wellAleksey Kladov2019-02-251-47/+47
|
* support upcastig in AST enumAleksey Kladov2019-02-242-0/+407
|
* Enable parsing attributes for generic lifetimes and type parametersVille Penttinen2019-02-171-0/+2
|
* Enable parsing of attributes inside a match blockVille Penttinen2019-02-171-0/+2
| | | | | | | 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.
* Handle generic args for method callsFlorian Diebold2019-02-161-0/+4
|
* Add generic params to impl blocksFlorian Diebold2019-02-161-0/+1
|
* Import the preludeFlorian Diebold2019-02-131-0/+1
|
* rename yellow -> syntax_nodeAleksey Kladov2019-02-122-2/+2
| | | | why yellow in the first place? Its red + green.
* make macro a NameOwnerAleksey Kladov2019-02-111-0/+1
|
* Fix handling of literal patternsFlorian Diebold2019-02-091-1/+36
| | | | | Wrap them in a LiteralPat node so they can be distinguished from literal expressions.
* Fill deprecation for LSPkjeremy2019-02-051-0/+1
|
* Add AST for extern crateFlorian Diebold2019-02-041-1/+9
| | | | Also change it to parse the crate name as a NAME_REF, not a NAME.
* Pass aliases to ImportDataFlorian Diebold2019-02-011-0/+33
|
* Merge #692bors[bot]2019-01-311-0/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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/+1
| |
* | Infer type of match guardMarcus Klaas de Vries2019-01-281-1/+5
|/
* fix verification on CIAleksey Kladov2019-01-261-44/+0
| | | | remove `--verify` flag from the binaries: we have tests for this!
* fix AST for if expressionsAleksey Kladov2019-01-261-0/+44
| | | | then is not always a block...
* rename POS_FIELD -> POS_FIELD_DEFAleksey Kladov2019-01-251-21/+21
| | | | to match NAMED_FIELD_DEF
* Add docs to struct fieldsJeremy A. Kolb2019-01-251-0/+1
|
* Merge #630bors[bot]2019-01-251-3/+15
|\ | | | | | | | | | | | | | | | | | | | | | | 630: Fill in DocumentSymbol::detail r=matklad a=hban Closes: #516 I just pulled type text from the syntax node and "formatted" is bit. VS Code can't really handle multi-line symbol detail (it's will crop it when rendering), so that formatting will just collapse all white-space to singe space. It isn't pretty, but maybe there's a better way. Issue also mentions "need to be done for `NavigationTarget` to `SymbolInformation`", but `SymbolInformation` doesn't have detail field on it? Co-authored-by: Hrvoje Ban <[email protected]>
| * Fill in DocumentSymbol::detailHrvoje Ban2019-01-241-3/+15
| |
* | Merge #633bors[bot]2019-01-242-0/+504
|\ \ | | | | | | | | | | | | | | | | | | | | | 633: use ToOwned trait instead of inherent method r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | use ToOwned trait instead of inherent methodAleksey Kladov2019-01-242-0/+504
| |/
* / Migrate trait & type to new idsAleksey Kladov2019-01-241-0/+1
|/
* Make EnumVariant a DocCommentsOwnerJeremy A. Kolb2019-01-231-0/+1
|
* Add AST/HIR for type args in path segmentsFlorian Diebold2019-01-191-0/+128
|
* Change parsing of struct field patternsMarcus Klaas de Vries2019-01-191-1/+5
|
* Move parsing of field pattern lists to the parser (where it belongs)Marcus Klaas de Vries2019-01-191-1/+34
|
* Add initial (flawed) implementation of binding annotationsMarcus Klaas de Vries2019-01-191-1/+5
|
* Create struct patterns up to the hir levelMarcus Klaas de Vries2019-01-191-4/+9
|
* Add additional pattern variantsMarcus Klaas de Vries2019-01-191-2/+10
|
* Update ARRAY_EXPR grammarHirokazu Hata2019-01-161-1/+5
|
* Fix type inference for raw (byte) stringsMarcus Klaas de Vries2019-01-141-0/+56
|
* Fixup testsMarcus Klaas de Vries2019-01-141-38/+94
|
* Start moving literal interpretation to the AST (WIP)Marcus Klaas de Vries2019-01-141-4/+110
|
* Update TUPLE_EXPR grammarHirokazu Hata2019-01-131-1/+5
|
* support ref-patternsAleksey Kladov2019-01-131-1/+5
|
* rename TreePtr -> TreeArcAleksey Kladov2019-01-112-116/+116
| | | | This is much clearer about the semantics
* itroduce trait for ast tokensAleksey Kladov2019-01-081-0/+7
|
* regenerateAleksey Kladov2019-01-081-3052/+1791
|
* switch ra_syntax to new rowan APIAleksey Kladov2019-01-081-45/+48
|
* Make FnScopes use hir::ExprFlorian Diebold2019-01-051-16/+9
| | | | | | This was a bit complicated. I've added a wrapper type for now that does the LocalSyntaxPtr <-> ExprId translation; we might want to get rid of that or give it a nicer interface.
* Add HIR Expr machineryFlorian Diebold2019-01-051-1/+9
|
* Type the self parameterFlorian Diebold2019-01-041-1/+46
|
* Add HIR for impl blocksFlorian Diebold2019-01-041-2/+38
| | | | | | | | | Since we need to be able to go from def to containing impl block, as well as the other direction, and to find all impls for a certain type, a design similar to the one for modules, where we collect all impls for the whole crate and keep them in an arena, seemed fitting. The ImplBlock type, which provides the public interface, then consists only of an Arc to the arena containing all impls, and the index into it.
* Rename ImplItem to ImplBlockFlorian Diebold2019-01-041-18/+18
| | | | | rustc uses the name ImplItem for items in impls, not the impl {} block itself, which could lead to confusion.
* visibility ownerAleksey Kladov2019-01-031-0/+47
|
* super simplistic macro expansionAleksey Kladov2018-12-281-0/+4
|
* add macro-call nodeAleksey Kladov2018-12-281-0/+41
|