about summary refs log tree commit diff
path: root/src/libsyntax/attr/mod.rs
AgeCommit message (Collapse)AuthorLines
2020-02-29Move directory `libsyntax` -> `librustc_ast`Vadim Petrochenkov-727/+0
2020-02-27don't use .into() to convert types into identical types.Matthias Krüger-1/+1
example: let s: String = format!("hello").into();
2020-02-24ast: add `Defaultness` to `Item`, making `AssocItem` an alias.Mazdak Farrokhzad-1/+1
2020-02-011. move allow_internal_unstable to rustc_attrMazdak Farrokhzad-24/+0
2. as a result, drop rustc_errors dep from syntax
2020-02-01Move builtin attribute logic to new rustc_attr crate.Mazdak Farrokhzad-7/+0
For now, this is all the crate contains, but more attribute logic & types will be moved there over time.
2020-02-01syntax: simplify HasAttrs codeMazdak Farrokhzad-21/+11
2020-02-01syntax: move GLOBALS to attr moduleMazdak Farrokhzad-3/+34
2020-01-10nix syntax::errors & prefer rustc_errors over errorsMazdak Farrokhzad-1/+1
2020-01-02Normalize `syntax::symbol` imports.Mazdak Farrokhzad-2/+2
2020-01-02Normalize `syntax::source_map` imports.Mazdak Farrokhzad-1/+1
2020-01-01Rename `syntax_pos` to `rustc_span` in source codeVadim Petrochenkov-1/+1
2019-12-28doc comments: Less attribute mimickingVadim Petrochenkov-8/+16
2019-12-22Format the worldMark Rousskov-109/+85
2019-12-20introduce 'type AttrVec'Mazdak Farrokhzad-3/+2
2019-12-12Unify `{Impl,Trait}Item` as `AssocItem`.Mazdak Farrokhzad-1/+1
2019-12-02syntax: Optimize conversion `AttrItem` -> `MetaItem` by avoiding `outer_tokens`.Vadim Petrochenkov-29/+44
2019-12-02syntax: Use `ast::MacArgs` for attributesVadim Petrochenkov-15/+27
2019-11-10move syntax::parse -> librustc_parseMazdak Farrokhzad-1/+1
also move MACRO_ARGUMENTS -> librustc_parse
2019-11-10move config.rs to libsyntax_expandMazdak Farrokhzad-1/+5
2019-11-09move attr meta grammar to parse::validate_atr + ast_validationMazdak Farrokhzad-19/+0
2019-11-07syntax::attr: remove usage of lexerMazdak Farrokhzad-3/+2
2019-11-07move PResult to librustc_errorsMazdak Farrokhzad-1/+2
2019-11-07syntax::parser::token -> syntax::tokenMazdak Farrokhzad-1/+1
2019-11-06Make doc comments cheaper with `AttrKind`.Nicholas Nethercote-31/+79
`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-11-06Remove unnecessary `Deref` impl for `Attribute`.Nicholas Nethercote-5/+5
This kind of thing just makes the code harder to read.
2019-10-27syntax/attr: reduce reliance on parserMazdak Farrokhzad-27/+2
2019-10-25move Attribute::with_desugared_doc to librustdocMazdak Farrokhzad-27/+2
2019-10-18Change `MetaItem::tokens()` to `MetaItem::token_trees_and_joints()`.Nicholas Nethercote-17/+26
Likewise for `NestedMetaItem::tokens()`. Also, add `MetaItemKind::token_trees_and_joints()`, which `MetaItemKind::tokens()` now calls. This avoids some unnecessary `TokenTree` to `TokenStream` conversions, and removes the need for the clumsy `TokenStream::append_to_tree_and_joint_vec()`.
2019-10-18Change `Lit::tokens()` to `Lit::token_tree()`.Nicholas Nethercote-4/+5
Because most of the call sites have an easier time working with a `TokenTree` instead of a `TokenStream`.
2019-10-16move syntax::ext to new crate syntax_expandMazdak Farrokhzad-2/+2
2019-10-16syntax: reduce visibilitiesMazdak Farrokhzad-3/+3
2019-10-16syntax: extract parse_cfg_attrMazdak Farrokhzad-1/+0
2019-10-16syntax: extract parse_derive_pathsMazdak Farrokhzad-15/+3
2019-10-15syntax::parse::sess -> syntax::sessMazdak Farrokhzad-1/+2
2019-10-14Remove the `Option` in `TokenStream`.Nicholas Nethercote-1/+1
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-5/+11
2019-09-30syntax: Split `ast::Attribute` into container and inner partsVadim Petrochenkov-7/+7
2019-09-26Rename `MetaItem.node` to `MetaItem.kind`varkor-18/+18
2019-09-26Rename `Stmt.node` to `Stmt.kind`varkor-2/+2
2019-09-26Rename `Lit.node` to `Lit.kind`varkor-1/+1
2019-09-24Stabilize `str::len`, `[T]::len`, `is_empty` and `str::as_bytes` as const fnOliver Scherer-0/+24
2019-09-07Aggregation of cosmetic changes made during work on REPL PRs: libsyntaxAlexander Regueiro-21/+22
2019-09-06Move injection of attributes from command line to `libsyntax_ext`Vadim Petrochenkov-46/+13
2019-08-27Cleanup: Consistently use `Param` instead of `Arg` #62426Kevin Per-1/+1
2019-08-15`Ident::with_empty_ctxt` -> `Ident::with_dummy_span`Vadim Petrochenkov-2/+2
`Ident` has had a full span rather than just a `SyntaxContext` for a long time now.
2019-08-15Remove `Spanned` from `mk_name_value_item_str` and `expr_to_spanned_string`Vadim Petrochenkov-5/+7
2019-08-14Merge Variant and Variant_Caio-1/+1
2019-08-05Make mk_attr_id private to libsyntaxMark Rousskov-1/+1
2019-08-05Drop explicit span argument from mk_name_value_itemMark Rousskov-2/+3
2019-08-05Drop span argument from mk_list_itemMark Rousskov-2/+2