aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/ast
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
|
* Add a hir::TypeRef as an intermediate between ast::TypeRef and ty::TyFlorian Diebold2018-12-251-5/+33
|
* Implement reference / pointer typesFlorian Diebold2018-12-251-3/+15
| | | | | - parse them - infer types of & and * expressions
* Implement basic completion for fieldsFlorian Diebold2018-12-251-0/+4
|
* Type field accessesFlorian Diebold2018-12-251-1/+9
|
* Add AST definitions for struct/variant fields etc.Florian Diebold2018-12-251-7/+218
| | | | Fixes #117
* Infer result of struct literals, and recurse into their child expressionsFlorian Diebold2018-12-251-3/+23
|
* Resolve paths to defs (functions currently) during type inferenceFlorian Diebold2018-12-231-1/+5
|
* Make let statements kind of workFlorian Diebold2018-12-231-0/+4
|
* Parse integer / float typesFlorian Diebold2018-12-231-1/+5
|
* Add beginnings of type infrastructureFlorian Diebold2018-12-231-6/+38
|
* grand module renameAleksey Kladov2018-12-081-365/+0
|
* Some import resolution boilerplateAleksey Kladov2018-11-201-0/+6
|
* Validate byte string literalsAdolfo Ochagavía2018-11-112-0/+43
|
* Add validator for byteAdolfo Ochagavía2018-11-112-0/+43
|
* Validate string literalsAdolfo Ochagavía2018-11-092-1/+45
|
* Complete paths in use treesAleksey Kladov2018-11-071-0/+9
|
* rename ROOT -> SOURCE_FILEAleksey Kladov2018-11-071-43/+43
|
* Add some more DocCommentsOwnerJeremy A. Kolb2018-11-071-0/+7
|
* ra_syntax::File is just RootNodeAleksey Kladov2018-11-062-197/+961
|
* Add a pinch of commentsAleksey Kladov2018-11-063-0/+16
|
* Generalize Owned nodesAleksey Kladov2018-11-062-1806/+1237
|
* Add character literal parsing and validationAdolfo Ochagavía2018-11-042-0/+40
|
* Use From to get an owned ASTAleksey Kladov2018-11-012-400/+700
|
* Reformat allAleksey Kladov2018-10-311-5/+11
|
* `ast::DocCommentsOwner` which represents a documentation comment ownerJeremy A. Kolb2018-10-312-0/+19
|
* Move FnDescriptors to analyzerAleksey Kladov2018-10-312-100/+100
|
* Introduce owned ast nodesAleksey Kladov2018-10-312-2/+1303
| | | | ast::FooNode is an owned 'static counterpart to ast::Foo<'a>
* Complete crate:: pathsAleksey Kladov2018-10-242-0/+34
|
* clippy: Use if lets and remove redundant returnsAlan Du2018-10-181-3/+2
|
* rename gen-kinds to gen-syntaxAleksey Kladov2018-10-162-2/+2
|
* Cargo FormatJeremy A. Kolb2018-10-163-13/+15
| | | | Run `cargo fmt` and ignore generated files
* regenerateAleksey Kladov2018-10-151-1/+1
|
* Run cargo fixAleksey Kladov2018-10-152-2/+2
|
* Merge #127bors[bot]2018-10-152-3/+43
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 127: Improve folding r=matklad a=aochagavia I was messing around with adding support for multiline comments in folding and ended up changing a bunch of other things. First of all, I am not convinced of folding groups of successive items. For instance, I don't see why it is worthwhile to be able to fold something like the following: ```rust use foo; use bar; ``` Furthermore, this causes problems if you want to fold a multiline import: ```rust use foo::{ quux }; use bar; ``` The problem is that now there are two possible folds at the same position: we could fold the first use or we could fold the import group. IMO, the only place where folding groups makes sense is when folding comments. Therefore I have **removed folding import groups in favor of folding multiline imports**. Regarding folding comments, I made it a bit more robust by requiring that comments can only be folded if they have the same flavor. So if you have a bunch of `//` comments followed by `//!` comments, you will get two separate fold groups instead of a single one. Finally, I rewrote the API in such a way that it should be trivial to add new folds. You only need to: * Create a new FoldKind * Add it to the `fold_kind` function that converts from `SyntaxKind` to `FoldKind` Fixes #113 Co-authored-by: Adolfo Ochagavía <[email protected]>
| * Only fold groups of similar commentsAdolfo Ochagavía2018-10-131-1/+1
| |
| * Cleanup fold code and split logic to fold single elementsAdolfo Ochagavía2018-10-122-2/+42
| |