summaryrefslogtreecommitdiffstats
path: root/tests/incremental/dirty_clean.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/incremental/dirty_clean.rs')
-rw-r--r--tests/incremental/dirty_clean.rs49
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/incremental/dirty_clean.rs b/tests/incremental/dirty_clean.rs
new file mode 100644
index 000000000..11d999ab3
--- /dev/null
+++ b/tests/incremental/dirty_clean.rs
@@ -0,0 +1,49 @@
+// revisions: rpass1 cfail2
+// compile-flags: -Z query-dep-graph
+
+#![allow(warnings)]
+#![feature(rustc_attrs)]
+
+// Sanity check for the dirty-clean system. Give the opposite
+// annotations that we expect to see, so that we check that errors are
+// reported.
+
+fn main() { }
+
+mod x {
+ #[cfg(rpass1)]
+ pub fn x() -> usize {
+ 22
+ }
+
+ #[cfg(cfail2)]
+ pub fn x() -> u32 {
+ 22
+ }
+}
+
+mod y {
+ use x;
+
+ #[rustc_clean(
+ except="hir_owner,hir_owner_nodes,generics_of,predicates_of,type_of,fn_sig",
+ cfg="cfail2",
+ )]
+ pub fn y() {
+ //[cfail2]~^ ERROR `hir_owner(y)` should be dirty but is not
+ //[cfail2]~| ERROR `hir_owner_nodes(y)` should be dirty but is not
+ //[cfail2]~| ERROR `generics_of(y)` should be dirty but is not
+ //[cfail2]~| ERROR `predicates_of(y)` should be dirty but is not
+ //[cfail2]~| ERROR `type_of(y)` should be dirty but is not
+ //[cfail2]~| ERROR `fn_sig(y)` should be dirty but is not
+ //[cfail2]~| ERROR `typeck(y)` should be clean but is not
+ x::x();
+ }
+}
+
+mod z {
+ #[rustc_clean(except="typeck", cfg="cfail2")]
+ pub fn z() {
+ //[cfail2]~^ ERROR `typeck(z)` should be dirty but is not
+ }
+}