Accept trailing comma in cfg_attr

This commit is contained in:
Vadim Petrochenkov
2018-09-26 03:07:59 +03:00
parent 4141a4079e
commit 2b3e16bfaa
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