]> git.lizzy.rs Git - rust.git/blob - src/test/incremental/spans_in_type_debuginfo.rs
Rollup merge of #65133 - davidtwco:issue-65035-static-with-generic-in-foreign-mod...
[rust.git] / src / test / incremental / spans_in_type_debuginfo.rs
1 // Test that moving a type definition within a source file does not affect
2 // re-compilation.
3
4 // revisions:rpass1 rpass2
5 // compile-flags: -Z query-dep-graph -g
6
7 #![rustc_partition_reused(module="spans_in_type_debuginfo-structs", cfg="rpass2")]
8 #![rustc_partition_reused(module="spans_in_type_debuginfo-enums", cfg="rpass2")]
9
10 #![feature(rustc_attrs)]
11
12 mod structs {
13     #[cfg(rpass1)]
14     pub struct X {
15         pub x: u32,
16     }
17
18     #[cfg(rpass2)]
19     pub struct X {
20         pub x: u32,
21     }
22
23     pub fn foo(x: X) -> u32 {
24         x.x
25     }
26 }
27
28 mod enums {
29     #[cfg(rpass1)]
30     pub enum X {
31         A { x: u32 },
32         B(u32),
33     }
34
35     #[cfg(rpass2)]
36     pub enum X {
37         A { x: u32 },
38         B(u32),
39     }
40
41     pub fn foo(x: X) -> u32 {
42         match x {
43             X::A { x } => x,
44             X::B(x) => x,
45         }
46     }
47 }
48
49 pub fn main() {
50     let _ = structs::foo(structs::X { x: 1 });
51     let _ = enums::foo(enums::X::A { x: 2 });
52 }