diff options
| author | Havvy (Ryan Scheel) <ryan.havvy@gmail.com> | 2018-09-10 15:06:49 -0700 |
|---|---|---|
| committer | Havvy (Ryan Scheel) <ryan.havvy@gmail.com> | 2018-10-05 17:29:17 -0700 |
| commit | 1a867dc346a0b9ea5abd8a8504f1908f42ff2dd2 (patch) | |
| tree | df5117610979478bd9f02f14b9eb360c3940b1fa /src/test/ui/conditional-compilation/cfg-attr-parse.rs | |
| parent | 9568ec6bef514515b14c78c7492186d509048968 (diff) | |
| download | rust-1a867dc346a0b9ea5abd8a8504f1908f42ff2dd2.tar.gz rust-1a867dc346a0b9ea5abd8a8504f1908f42ff2dd2.zip | |
cfg_attr_multi: Basic implementation
Does not implement the warning or a feature flag.
Diffstat (limited to 'src/test/ui/conditional-compilation/cfg-attr-parse.rs')
| -rw-r--r-- | src/test/ui/conditional-compilation/cfg-attr-parse.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/test/ui/conditional-compilation/cfg-attr-parse.rs b/src/test/ui/conditional-compilation/cfg-attr-parse.rs new file mode 100644 index 00000000000..eec0e8faca8 --- /dev/null +++ b/src/test/ui/conditional-compilation/cfg-attr-parse.rs @@ -0,0 +1,45 @@ +// Parse `cfg_attr` with varying numbers of attributes and trailing commas + +#![feature(cfg_attr_multi)] + +// Completely empty `cfg_attr` input +#[cfg_attr()] //~ error: expected identifier, found `)` +struct NoConfigurationPredicate; + +// Zero attributes, zero trailing comma (comma manatory here) +#[cfg_attr(all())] //~ error: expected `,`, found `)` +struct A0C0; + +// Zero attributes, one trailing comma +#[cfg_attr(all(),)] // Ok +struct A0C1; + +// Zero attributes, two trailing commas +#[cfg_attr(all(),,)] //~ ERROR expected identifier +struct A0C2; + +// One attribute, no trailing comma +#[cfg_attr(all(), must_use)] // Ok +struct A1C0; + +// One attribute, one trailing comma +#[cfg_attr(all(), must_use,)] // Ok +struct A1C1; + +// One attribute, two trailing commas +#[cfg_attr(all(), must_use,,)] //~ ERROR expected identifier +struct A1C2; + +// Two attributes, no trailing comma +#[cfg_attr(all(), must_use, deprecated)] // Ok +struct A2C0; + +// Two attributes, one trailing comma +#[cfg_attr(all(), must_use, deprecated,)] // Ok +struct A2C1; + +// Two attributes, two trailing commas +#[cfg_attr(all(), must_use, deprecated,,)] //~ ERROR expected identifier +struct A2C2; + +fn main() {} |
