summaryrefslogtreecommitdiffstats
path: root/src/test/ui/cfg/cfgs-on-items.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/cfg/cfgs-on-items.rs')
-rw-r--r--src/test/ui/cfg/cfgs-on-items.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/test/ui/cfg/cfgs-on-items.rs b/src/test/ui/cfg/cfgs-on-items.rs
new file mode 100644
index 000000000..9f2fc4942
--- /dev/null
+++ b/src/test/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());
+}