summary refs log tree commit diff
path: root/src/libsyntax/mut_visit.rs
AgeCommit message (Collapse)AuthorLines
2020-01-20Revert "Add a `constness` field to `ast::TraitRef`"Dylan MacKenzie-2/+1
This reverts commit fd4a6a12136c5b5d6bce4081e95890df1fd1febd.
2020-01-19Add `constness` field to `ast::ItemKind::Impl`Dylan MacKenzie-0/+1
2020-01-17Use named fields for `ast::ItemKind::Impl`Dylan MacKenzie-3/+11
2020-01-10Introduce `#![feature(half_open_range_patterns)]`.Mazdak Farrokhzad-2/+2
This feature adds `X..`, `..X`, and `..=X` patterns.
2020-01-09Add a `constness` field to `ast::TraitRef`Dylan MacKenzie-1/+2
This is used for both the `?const` syntax in bounds as well as the `impl const Trait` syntax. I also considered handling these separately by adding a variant of `TraitBoundModifier` and a field to `ItemKind::Impl`, but this approach was less intrusive.
2020-01-02Normalize `syntax::source_map` imports.Mazdak Farrokhzad-3/+3
2020-01-01Rename `syntax_pos` to `rustc_span` in source codeVadim Petrochenkov-1/+1
2019-12-23Add span information to `ExprKind::Assign`varkor-1/+1
2019-12-22Format the worldMark Rousskov-100/+112
2019-12-20introduce 'type AttrVec'Mazdak Farrokhzad-2/+1
2019-12-12`AssocImplKind::{Method -> Fn}`.Mazdak Farrokhzad-1/+1
2019-12-12Unify associated item mut visitors.Mazdak Farrokhzad-43/+11
2019-12-12parse: refactor fun ret ty & param tyMazdak Farrokhzad-2/+6
2019-12-12Unify `{Trait,Impl}ItemKind::TyAlias` structures.Mazdak Farrokhzad-1/+4
2019-12-12`TraitItemKind::Type` -> `TraitItemKind::TyAlias`.Mazdak Farrokhzad-1/+1
2019-12-12Use `Option` in `ImplItemKind::Method`.Mazdak Farrokhzad-1/+1
2019-12-12Use `Option` in `ImplItemKind::Const`.Mazdak Farrokhzad-1/+1
2019-12-12Alias `TraitItem` & `ImplItem`.Mazdak Farrokhzad-1/+2
Allow defaultness on trait items syntactically.
2019-12-07Make `ForeignItem` an alias of `Item`.Mazdak Farrokhzad-1/+1
2019-12-02syntax: Use `ast::MacArgs` for macro definitionsVadim Petrochenkov-2/+2
2019-12-02syntax: Use `ast::MacArgs` for attributesVadim Petrochenkov-4/+4
2019-12-02syntax: Remove redundant span from `ast::Mac`Vadim Petrochenkov-2/+1
Also remove a couple of redundant `visit_mac` asserts
2019-12-02syntax: Introduce a struct `MacArgs` for macro argumentsVadim Petrochenkov-2/+22
2019-11-24Add raw address of expressions to the AST and HIRMatthew Jasper-1/+1
2019-11-22Rollup merge of #66183 - Centril:empty-vis-trait-decl, r=petrochenkovMazdak Farrokhzad-22/+24
*Syntactically* permit visibilities on trait items & enum variants Fixes #65041 Suppose we have `$vis trait_item` or `$vis enum_variant` and `$vis` is a `:vis` macro fragment. Before this PR, this would fail to parse. This is now instead allowed as per language team consensus in https://github.com/rust-lang/rust/issues/65041#issuecomment-538105286. (See added tests for elaboration.) Moreover, we now also permit visibility modifiers on trait items & enum variants *syntactically* but reject them with semantic checks (in `ast_validation`): ```rust #[cfg(FALSE)] trait Foo { pub fn bar(); } // OK #[cfg(FALSE)] enum E { pub U } // OK ```
2019-11-16ast: Keep `extern` qualifiers in functions more preciselyVadim Petrochenkov-2/+2
2019-11-14TAIT: remove `OpaqueTy` in AST.Mazdak Farrokhzad-5/+0
2019-11-11syntactically allow visibility on trait item & enum variantMazdak Farrokhzad-22/+24
2019-11-10move config.rs to libsyntax_expandMazdak Farrokhzad-3/+0
2019-11-08ast::ItemKind::Fn: use ast::FnSigMazdak Farrokhzad-6/+5
2019-11-08ast::MethodSig -> ast::FnSigMazdak Farrokhzad-1/+1
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