about summary refs log tree commit diff
path: root/src/libsyntax/mut_visit.rs
AgeCommit message (Collapse)AuthorLines
2019-11-07syntax::parser::token -> syntax::tokenMazdak Farrokhzad-1/+1
2019-11-06Make doc comments cheaper with `AttrKind`.Nicholas Nethercote-4/+8
`AttrKind` is a new type with two variants, `Normal` and `DocComment`. It's a big performance win (over 10% in some cases) because `DocComment` lets doc comments (which are common) be represented very cheaply. `Attribute` gets some new helper methods to ease the transition: - `has_name()`: check if the attribute name matches a single `Symbol`; for `DocComment` variants it succeeds if the symbol is `sym::doc`. - `is_doc_comment()`: check if it has a `DocComment` kind. - `{get,unwrap}_normal_item()`: extract the item from a `Normal` variant; panic otherwise. Fixes #60935.
2019-10-14Remove the `Option` in `TokenStream`.Nicholas Nethercote-4/+2
It means an allocation is required to create an empty `TokenStream`, but all other operations are simpler and marginally faster due to not having to check for `None`. Overall it simplifies the code for a negligible performance effect. The commit also removes `TokenStream::empty` by implementing `Default`, which is now possible.
2019-09-30syntax: Support modern attribute syntax in the `meta` matcherVadim Petrochenkov-1/+4
2019-09-30syntax: Split `ast::Attribute` into container and inner partsVadim Petrochenkov-1/+2
2019-09-28syntax: don't keep a redundant c_variadic flag in the AST.Eduard-Mihai Burtescu-1/+1
2019-09-26Rename `MetaItem.node` to `MetaItem.kind`varkor-2/+2
2019-09-26Rename `ForeignItem.node` to `ForeignItem.kind`varkor-2/+2
2019-09-26Rename `Item.node` to `Item.kind`varkor-5/+5
2019-09-26Rename `Stmt.node` to `Stmt.kind`varkor-5/+5
2019-09-26Rename `Ty.node` to `Ty.kind`varkor-2/+2
2019-09-26Rename `TraitItem.node` to `TraitItem.kind`varkor-2/+2
2019-09-26Rename `ImplItem.node` to `ImplItem.kind`varkor-2/+2
2019-09-26Rename `Pat.node` to `Pat.kind`varkor-2/+2
2019-09-26Rename `Expr.node` to `Expr.kind`varkor-2/+2
For both `ast::Expr` and `hir::Expr`.
2019-09-09Resolve attributes in several placesCaio-6/+7
Arm, Field, FieldPat, GenericParam, Param, StructField and Variant
2019-09-07Aggregation of cosmetic changes made during work on REPL PRs: libsyntaxAlexander Regueiro-14/+14
2019-09-05or-patterns: syntax: adjust `visit` and `mut_visit`.Mazdak Farrokhzad-8/+5
2019-08-27Cleanup: Consistently use `Param` instead of `Arg` #62426Kevin Per-6/+6
2019-08-24Modifies how Arg, Arm, Field, FieldPattern and Variant are visitedCaio-49/+77
Part of the necessary work to accomplish #63468.
2019-08-18Auto merge of #61708 - dlrobertson:or-patterns-0, r=centrilbors-2/+3
Initial implementation of or-patterns An incomplete implementation of or-patterns (e.g. `Some(0 | 1)` as a pattern). This patch set aims to implement initial parsing of `or-patterns`. Related to: #54883 CC @alexreg @varkor r? @Centril
2019-08-17Initial implementation of or patternsvarkor-2/+3
2019-08-17Remove SyntaxContext from {ast, hir}::{GlobalAsm, InlineAsm}Matthew Jasper-1/+1
We now store it in the `Span` of the expression or item.
2019-08-15Remove `Spanned` from `{ast,hir}::FieldPat`Vadim Petrochenkov-4/+1
2019-08-15Remove `Spanned` from `ast::Mac`Vadim Petrochenkov-2/+2
2019-08-14Rollup merge of #63543 - c410-f3r:variant, r=c410-f3rMazdak Farrokhzad-1/+1
Merge Variant and Variant_ Extracted from #63468.
2019-08-14Merge Variant and Variant_Caio-1/+1
2019-08-13Add NodeId for Arm, Field and FieldPatCaio-3/+9
2019-08-04Auto merge of #63213 - varkor:itemkind-tyalias, r=Centrilbors-2/+2
Rename `ItemKind::Ty` to `ItemKind::TyAlias` The current name is not entirely clear without context and `TyAlias` is consistent with `ItemKind::TraitAlias`.
2019-08-04Rename `ItemImplKind::Type` to `ItemImplKind::TyAlias`varkor-1/+1
2019-08-04Rename `ItemKind::Ty` to `ItemKind::TyAlias`varkor-1/+1
2019-08-04Auto merge of #62816 - estebank:type-ascription-macros, r=petrochenkovbors-1/+1
Point at type ascription before macro invocation on expansion parse error Fix https://github.com/rust-lang/rust/issues/47666. Follow up to https://github.com/rust-lang/rust/pull/62791. r? @petrochenkov
2019-08-03Auto merge of #63180 - varkor:trait-alias-impl-trait, r=Centrilbors-2/+2
Change opaque type syntax from `existential type` to type alias `impl Trait` This implements a new feature gate `type_alias_impl_trait` (this is slightly different from the originally proposed feature name, but matches what has been used in discussion since), deprecating the old `existential_types` feature. The syntax for opaque types has been changed. In addition, the "existential" terminology has been replaced with "opaque", as per previous discussion and the RFC. This makes partial progress towards implementing https://github.com/rust-lang/rust/issues/63063. r? @Centril
2019-08-02Replace "existential" by "opaque"varkor-2/+2
2019-08-02libsyntax: Unconfigure tests during normal buildVadim Petrochenkov-74/+3
2019-07-30Point at type ascription before macro invocation on expansion parse errorEsteban Küber-1/+1
2019-07-30Unsupport the await!(..) macro.Mazdak Farrokhzad-1/+1
2019-07-28Rollup merge of #61856 - c410-f3r:attrs-fn, r=matthewjasperMazdak Farrokhzad-1/+2
Lint attributes on function arguments Fixes #61238. cc #60406
2019-07-28Adjust 'ast::PatKind::{TupleStruct,Tuple,Slice}'.Mazdak Farrokhzad-8/+4
2019-07-28Add 'ast::PatKind::Rest'.Mazdak Farrokhzad-1/+1
2019-07-27Lint attributes on function argumentsCaio-1/+2
2019-07-15pprust: Fix formatting regressions from the previous commitsVadim Petrochenkov-1/+1
Fix some remaining cases of bad formatting Update some failing tests
2019-06-29Remove io::Result from syntax::printMark Rousskov-2/+1
Since we're now writing directly to the vector, there's no need to thread results through the whole printing infrastructure
2019-06-24Auto merge of #62075 - Centril:guardless-match-arms, r=petrochenkovbors-11/+1
Remove `ast::Guard` With the introduction of `ast::ExprKind::Let` in https://github.com/rust-lang/rust/pull/60861, the `ast::Guard` structure is now redundant in terms of representing [`if let` guards](https://github.com/rust-lang/rust/issues/51114) in AST since it can be represented by `ExprKind::Let` syntactically. Therefore, we remove `ast::Guard` here. However, we keep `hir::Guard` because the semantic representation is a different matter and this story is more unclear right now (might involve `goto 'arm` in HIR or something...). r? @petrochenkov
2019-06-23Remove redundant syntax::ast::Guard.Mazdak Farrokhzad-11/+1
2019-06-23let_chains: Remove ast::ExprKind::{IfLet, WhileLet} from visitors and ↵Mazdak Farrokhzad-12/+4
introduce ::Let.
2019-06-18Remove the HirId/NodeId from where clausesMatthew Jasper-2/+1
Also give them a span in the HIR
2019-06-09Allow attributes in formal function parametersCaio-1/+2
2019-06-07syntax: Treat error literals in more principled wayVadim Petrochenkov-2/+1
2019-06-06Address review commentsVadim Petrochenkov-0/+2