Accept trailing comma in cfg_attr
This commit is contained in:
@@ -90,6 +90,7 @@ impl<'a> StripUnconfigured<'a> {
|
|||||||
parser.expect(&token::Comma)?;
|
parser.expect(&token::Comma)?;
|
||||||
let lo = parser.span.lo();
|
let lo = parser.span.lo();
|
||||||
let (path, tokens) = parser.parse_meta_item_unrestricted()?;
|
let (path, tokens) = parser.parse_meta_item_unrestricted()?;
|
||||||
|
parser.eat(&token::Comma); // Optional trailing comma
|
||||||
parser.expect(&token::CloseDelim(token::Paren))?;
|
parser.expect(&token::CloseDelim(token::Paren))?;
|
||||||
Ok((cfg, path, tokens, parser.prev_span.with_lo(lo)))
|
Ok((cfg, path, tokens, parser.prev_span.with_lo(lo)))
|
||||||
}) {
|
}) {
|
||||||
|
|||||||
13
src/test/ui/cfg-attr-trailing-comma.rs
Normal file
13
src/test/ui/cfg-attr-trailing-comma.rs
Normal 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() {}
|
||||||
14
src/test/ui/cfg-attr-trailing-comma.stderr
Normal file
14
src/test/ui/cfg-attr-trailing-comma.stderr
Normal 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
|
||||||
|
|
||||||
Reference in New Issue
Block a user