diff options
Diffstat (limited to 'tests/ui/cfg/cfgs-on-items.rs')
-rw-r--r-- | tests/ui/cfg/cfgs-on-items.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/ui/cfg/cfgs-on-items.rs b/tests/ui/cfg/cfgs-on-items.rs new file mode 100644 index 000000000..9f2fc4942 --- /dev/null +++ b/tests/ui/cfg/cfgs-on-items.rs @@ -0,0 +1,29 @@ +// run-pass +// compile-flags: --cfg fooA --cfg fooB + +// fooA AND !bar + +#[cfg(all(fooA, not(bar)))] +fn foo1() -> isize { 1 } + +// !fooA AND !bar +#[cfg(all(not(fooA), not(bar)))] +fn foo2() -> isize { 2 } + +// fooC OR (fooB AND !bar) +#[cfg(any(fooC, all(fooB, not(bar))))] +fn foo2() -> isize { 3 } + +// fooA AND bar +#[cfg(all(fooA, bar))] +fn foo3() -> isize { 2 } + +// !(fooA AND bar) +#[cfg(not(all(fooA, bar)))] +fn foo3() -> isize { 3 } + +pub fn main() { + assert_eq!(1, foo1()); + assert_eq!(3, foo2()); + assert_eq!(3, foo3()); +} |