Auto merge of #54581 - petrochenkov:cfgattr, r=alexcrichton

Accept trailing comma in `cfg_attr`

Fixes https://github.com/rust-lang/rust/issues/54463 (stable-to-beta regression)
This commit is contained in:
bors 2018-09-27 07:16:27 +00:00
commit e999ebdb97
3 changed files with 28 additions and 0 deletions

View File

@ -90,6 +90,7 @@ impl<'a> StripUnconfigured<'a> {
parser.expect(&token::Comma)?;
let lo = parser.span.lo();
let (path, tokens) = parser.parse_meta_item_unrestricted()?;
parser.eat(&token::Comma); // Optional trailing comma
parser.expect(&token::CloseDelim(token::Paren))?;
Ok((cfg, path, tokens, parser.prev_span.with_lo(lo)))
}) {

View File

@ -0,0 +1,13 @@
// compile-flags: --cfg TRUE
#[cfg_attr(TRUE, inline,)] // OK
fn f() {}
#[cfg_attr(FALSE, inline,)] // OK
fn g() {}
#[cfg_attr(TRUE, inline,,)] //~ ERROR expected `)`, found `,`
fn h() {}
#[cfg_attr(FALSE, inline,,)] //~ ERROR expected `)`, found `,`
fn i() {}

View File

@ -0,0 +1,14 @@
error: expected `)`, found `,`
--> $DIR/cfg-attr-trailing-comma.rs:9:25
|
LL | #[cfg_attr(TRUE, inline,,)] //~ ERROR expected `)`, found `,`
| ^ expected `)`
error: expected `)`, found `,`
--> $DIR/cfg-attr-trailing-comma.rs:12:26
|
LL | #[cfg_attr(FALSE, inline,,)] //~ ERROR expected `)`, found `,`
| ^ expected `)`
error: aborting due to 2 previous errors