diff options
Diffstat (limited to 'tests/incremental/ich_resolve_results.rs')
-rw-r--r-- | tests/incremental/ich_resolve_results.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/incremental/ich_resolve_results.rs b/tests/incremental/ich_resolve_results.rs new file mode 100644 index 000000000..e6ab6bceb --- /dev/null +++ b/tests/incremental/ich_resolve_results.rs @@ -0,0 +1,45 @@ +// Check that the hash for `mod3::bar` changes when we change the +// `use` to something different. + +// revisions: rpass1 rpass2 rpass3 +// compile-flags: -Z query-dep-graph + +#![feature(rustc_attrs)] + +fn test<T>() { } + +mod mod1 { + pub struct Foo(pub u32); +} + +mod mod2 { + pub struct Foo(pub i64); +} + +mod mod3 { + #[cfg(rpass1)] + use mod1::Foo; + use test; + + // In rpass2 we move the use declaration. + #[cfg(rpass2)] + use mod1::Foo; + + // In rpass3 we let the declaration point to something else. + #[cfg(rpass3)] + use mod2::Foo; + + #[rustc_clean(cfg="rpass2")] + #[rustc_clean(except="hir_owner_nodes,typeck", cfg="rpass3")] + fn in_expr() { + Foo(0); + } + + #[rustc_clean(cfg="rpass2")] + #[rustc_clean(except="hir_owner_nodes,typeck", cfg="rpass3")] + fn in_type() { + test::<Foo>(); + } +} + +fn main() { } |