diff options
Diffstat (limited to 'tests/incremental/dirty_clean.rs')
-rw-r--r-- | tests/incremental/dirty_clean.rs | 49 |
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 + } +} |