rust/src/libsyntax
kennytm 26a9d589c8
Rollup merge of #51283 - kennytm:fix-51279-preempt-the-warning-song-and-dance, r=nikomatsakis
Deny #[cfg] and #[cfg_attr] on generic parameters.

Fix #51279.

Attributes on generic parameters are not expanded, meaning `#[cfg]`, `#[cfg_attr]` and attribute proc macros are entirely ignored on them.

This PR makes using the first two attributes an error, because if they are correctly expanded will affect the AST and change code behavior.

I'm beta-nominating this, because generic parameter attributes are stabilizing in 1.27, and if we did not reserve their usage, we may never be able to repurpose the meaning of these attributes in the Rust 2015 edition.
2018-06-08 07:05:39 +08:00
..
diagnostics Add Ident::as_str helper 2018-05-26 15:20:23 +03:00
ext Deny #[cfg] and #[cfg_attr] on generic parameters. 2018-06-02 05:11:33 +08:00
parse Auto merge of #51201 - estebank:dotdot, r=petrochenkov 2018-06-06 14:04:06 +00:00
print Auto merge of #51072 - petrochenkov:ifield, r=eddyb 2018-05-26 16:56:22 +00:00
util restore emplacement syntax (obsolete) 2018-05-24 18:49:58 -04:00
ast.rs Auto merge of #51052 - nikomatsakis:obsolete-arrow, r=petrochenkov 2018-05-26 14:30:30 +00:00
attr.rs Deny #[cfg] and #[cfg_attr] on generic parameters. 2018-06-02 05:11:33 +08:00
build.rs rustc: Add some build scripts for librustc crates 2017-07-22 22:04:13 -07:00
Cargo.toml rustc_target: move in syntax::abi and flip dependency. 2018-04-26 17:49:16 +03:00
codemap.rs Satisfy tidy 2018-05-21 18:43:11 +02:00
config.rs Deny #[cfg] and #[cfg_attr] on generic parameters. 2018-06-02 05:11:33 +08:00
diagnostic_list.rs Auto merge of #50030 - flip1995:rfc2103, r=petrochenkov 2018-05-03 11:52:03 +00:00
entry.rs Cleanup InternedString. 2016-11-21 09:00:56 +00:00
feature_gate.rs Rollup merge of #51283 - kennytm:fix-51279-preempt-the-warning-song-and-dance, r=nikomatsakis 2018-06-08 07:05:39 +08:00
fold.rs syntax: remove overloading of fold_lifetime{,_def}{,s}. 2018-05-30 20:29:38 +03:00
json.rs Stabilize suggestion applicability field in json output 2018-05-21 10:48:12 -07:00
lib.rs Move definition of Edition from libsyntax to libsyntax_pos 2018-05-17 23:13:08 +03:00
ptr.rs syntax: Rename P::unwrap into P::into_inner 2017-12-17 02:21:29 +03:00
README.md Replace many of the last references to readmes 2018-03-16 12:43:22 -05:00
show_span.rs use field init shorthand EVERYWHERE 2017-08-15 15:29:17 -07:00
std_inject.rs Add edition to expansion info 2018-05-17 23:13:08 +03:00
str.rs Inline char_at() and record_width. 2018-05-13 17:16:02 +10:00
test.rs Add Ident::as_str helper 2018-05-26 15:20:23 +03:00
test_snippet.rs Remove syntax and syntax_pos thread locals 2018-03-14 11:56:01 +01:00
tokenstream.rs Make Directory::path a Cow. 2018-05-18 22:20:33 +10:00
visit.rs rustc: don't visit lifetime parameters through visit_lifetime. 2018-05-30 20:29:38 +03:00

The syntax crate contains those things concerned purely with syntax that is, the AST ("abstract syntax tree"), parser, pretty-printer, lexer, macro expander, and utilities for traversing ASTs.

For more information about how these things work in rustc, see the rustc guide: