// 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()); | |
} |