Commit Graph

72 Commits

Author SHA1 Message Date
Mazdak Farrokhzad 2c3e5d3de0 - remove syntax::{span_warn!, span_err!, span_fatal!. struct_err!}
- remove syntax::{help!, span_help!, span_note!}
- remove unused syntax::{struct_span_fatal, struct_span_err_or_warn!, span_err_or_warn!}
- lintify check_for_bindings_named_same_as_variants + conflicting_repr_hints
- inline syntax::{struct_span_warn!, diagnostic_used!}
- stringify_error_code! -> error_code! & use it more.
- find_plugin_registrar: de-fatalize an error
- de-fatalize metadata errors
- move type_error_struct! to rustc_typeck
- struct_span_err! -> rustc_errors
2020-01-08 04:25:33 +01:00
Vadim Petrochenkov 70f1d57048 Rename `syntax_pos` to `rustc_span` in source code 2020-01-01 09:15:18 +03:00
Vadim Petrochenkov 3d57b8bcc0 doc comments: Less attribute mimicking 2019-12-28 12:33:18 +03:00
Mark Rousskov a06baa56b9 Format the world 2019-12-22 17:42:47 -05:00
Ross MacArthur f7256d28d1
Require issue = "none" over issue = "0" in unstable attributes 2019-12-21 13:16:18 +02:00
Oliver Scherer 5e17e39881 Require stable/unstable annotations for the constness of all stable functions with a `const` modifier 2019-12-13 11:27:02 +01:00
Mazdak Farrokhzad 79077f13ff move GateIssue to rustc_feature & simplify emit_feature_err 2019-11-30 07:40:28 +01:00
Mazdak Farrokhzad 70234f16df builtin_attrs.rs -> rustc_feature 2019-11-30 02:34:18 +01:00
Mazdak Farrokhzad d04b838a44 move is_builtin_attr to syntax::attr 2019-11-30 02:20:07 +01:00
Mazdak Farrokhzad 6cab02cf14 simplify gated cfgs logic 2019-11-30 01:57:53 +01:00
Mazdak Farrokhzad 8ad4d15f38 move AttributeTemplate to builtin_attrs 2019-11-30 00:56:46 +01:00
Mazdak Farrokhzad 3d080a4a77 introduce crate rustc_feature and move active, accepted, and removed to it 2019-11-30 00:25:40 +01:00
Camille GILLOT 3d97a91e7f Remove extern crate. 2019-11-17 22:37:16 +01:00
Camille GILLOT efcb695f4c Further HashStable_Generic derives. 2019-11-17 22:37:10 +01:00
Camille GILLOT c2e1658c67 Use proc_macro for HashStable derive in libsyntax. 2019-11-17 22:37:08 +01:00
Yuki Okushi 842612fcc0
Rollup merge of #66381 - Centril:66340, r=petrochenkov
find_deprecation: deprecation attr may be ill-formed meta.

Fixes #66340.

r? @petrochenkov
cc @pnkfelix
2019-11-17 13:36:15 +09:00
Mazdak Farrokhzad 91aadf0305 find_deprecation: deprecation attr may be ill-formed meta. 2019-11-15 13:24:06 +01:00
Guillaume Gomez 798e389e57 Update to use new librustc_error_codes library 2019-11-14 13:05:42 +01:00
Ross MacArthur 3ba8257253 support issue = "none" in unstable attributes
- Use `Option<NonZeroU32>` to represent issue numbers.
2019-11-11 19:33:30 +02:00
Mazdak Farrokhzad 4ae2728fa8 move syntax::parse -> librustc_parse
also move MACRO_ARGUMENTS -> librustc_parse
2019-11-10 03:57:18 +01:00
Mazdak Farrokhzad 5011ec7fed move attr meta grammar to parse::validate_atr + ast_validation 2019-11-09 02:04:24 +01:00
Nicholas Nethercote eea6f23a0e Make doc comments cheaper with `AttrKind`.
`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-06 23:05:07 +11:00
Nicholas Nethercote 69bc4aba78 Remove unnecessary `Deref` impl for `Attribute`.
This kind of thing just makes the code harder to read.
2019-11-06 23:01:02 +11:00
Nicholas Nethercote ac6daed384 Remove many unnecessary trait derivations. 2019-10-21 20:59:18 +11:00
Mazdak Farrokhzad 7ec38a9ae3 attr: remove dep on ExtCtxt 2019-10-16 10:59:53 +02:00
Mazdak Farrokhzad ae156a56d4 syntax::parse::sess -> syntax::sess 2019-10-15 09:41:58 +02:00
Mazdak Farrokhzad 742ec4b9bf ast: remove implicit pprust dependency via Display.
Instead just use `pprust::path_to_string(..)` where needed.

This has two benefits:

a) The AST definition is now independent of printing it.
   (Therefore we get closer to extracting a data-crate.)

b) Debugging should be easier as program flow is clearer.
2019-10-13 06:58:51 +02:00
varkor 38121173e2 Rename `MetaItem.node` to `MetaItem.kind` 2019-09-26 18:21:48 +01:00
varkor 17726f6b52 Rename `Lit.node` to `Lit.kind` 2019-09-26 18:21:09 +01:00
Vadim Petrochenkov f7434aef26 Support "soft" feature-gating using a lint
Use it for feature-gating `#[bench]`
2019-09-07 21:37:51 +03:00
Mark Rousskov 0f985817bd Replace AstBuilder with inherent methods 2019-07-31 08:55:37 -04:00
Mark Rousskov b2c5065b04 Remove Span argument from ExtCtxt::attribute
MetaItem.span was always equivalent
2019-07-31 08:55:37 -04:00
Vadim Petrochenkov 6e4f16173c Demote template check error to a lint for `#[test]` and `#[bench]` 2019-07-24 12:29:45 +03:00
Vadim Petrochenkov 76b1ffaf6c syntax_ext: Reuse built-in attribute template checking for macro attributes 2019-07-24 12:29:45 +03:00
Vadim Petrochenkov 1ee0ce82cb syntax: Migrate built-in macros to the regular stability checking 2019-07-07 13:04:07 +03:00
Vadim Petrochenkov 3542995ff9 syntax: Keep full `Stability` in `SyntaxExtension` 2019-07-07 13:04:07 +03:00
Vadim Petrochenkov 920a17a60c privacy: Only opaque macros leak private things 2019-07-06 16:59:08 +03:00
John Kåre Alsaker 6d387463aa Remove GlobalArenas and use Arena instead 2019-05-31 09:44:37 +02:00
Esteban Küber 609ffa1a89 Reword malformed attribute input diagnostics
- Handle empty `cfg_attr` attribute
- Reword empty `derive` attribute error
- Use consistend error message: "malformed `attrname` attribute input"
- Provide suggestions when possible
- Move note/help to label/suggestion
- Use consistent wording "ill-formed" -> "malformed"
- Move diagnostic logic out of parser
2019-05-25 11:55:50 -07:00
Nicholas Nethercote ea9fac5687 Return a `Symbol` from `name_or_empty` functions. 2019-05-13 09:31:32 +10:00
Nicholas Nethercote 999c1fc281 Remove the equality operation between `Symbol` and strings.
And also the equality between `Path` and strings, because `Path` is made
up of `Symbol`s.
2019-05-13 09:31:30 +10:00
Nicholas Nethercote fb084a48e2 Pass a `Symbol` to `check_name`, `emit_feature_err`, and related functions. 2019-05-13 09:29:22 +10:00
Taylor Cramer e617025e96 Add rustc_allow_const_fn_ptr 2019-04-23 15:55:31 -07:00
Vadim Petrochenkov db74efce69 Make meta-item API compatible with `LocalInternedString::get` soundness fix 2019-03-17 17:04:58 +03:00
Vadim Petrochenkov 0cf96131f4 Refactor away `NestedMetaItemKind`
Remove methods `Attribute::span` and `MetaItem::span` duplicating public fields
2019-03-16 23:14:42 +03:00
Vadim Petrochenkov 63116d313d Rename `MetaItem::ident` to `MetaItem::path` 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov 8371caf5ee syntax: Do not accidentally treat multi-segment meta-items as single-segment 2019-03-16 23:13:15 +03:00
Vadim Petrochenkov b11502fbc0 Mention `unwind(aborts)` in diagnostics for `#[unwind]`
Simplify input validation for `#[unwind]`, add tests
2019-02-27 09:37:05 +03:00
Mazdak Farrokhzad 0bc8f6f3f4
Rollup merge of #58273 - taiki-e:rename-dependency, r=matthewjasper
Rename rustc_errors dependency in rust 2018 crates

I think this is a better solution than `use rustc_errors as errors` in `lib.rs` and `use crate::errors` in modules.

Related: rust-lang/cargo#5653

cc #58099

r? @Centril
2019-02-13 04:37:04 +01:00
Mazdak Farrokhzad 856e41142c
Rollup merge of #58166 - euclio:deprecation-shorthand, r=petrochenkov
allow shorthand syntax for deprecation reason

Fixes #48271.

Created based on discussion in #56896.
2019-02-13 04:37:02 +01:00