]>
git.proxmox.com Git - rustc.git/blob - tests/incremental/hashes/match_expressions.rs
1 // This test case tests the incremental compilation hash (ICH) implementation
2 // for match expressions.
4 // The general pattern followed here is: Change one thing between rev1 and rev2
5 // and make sure that the hash has changed, then change nothing between rev2 and
6 // rev3 and make sure that the hash has not changed.
8 // build-pass (FIXME(62277): could be check-pass?)
9 // revisions: cfail1 cfail2 cfail3 cfail4 cfail5 cfail6
10 // compile-flags: -Z query-dep-graph -O
11 // [cfail1]compile-flags: -Zincremental-ignore-spans
12 // [cfail2]compile-flags: -Zincremental-ignore-spans
13 // [cfail3]compile-flags: -Zincremental-ignore-spans
16 #![feature(rustc_attrs)]
19 // Add Arm ---------------------------------------------------------------------
20 #[cfg(any(cfail1,cfail4))]
21 pub fn add_arm(x
: u32) -> u32 {
30 #[cfg(not(any(cfail1,cfail4)))]
31 #[rustc_clean(cfg="cfail2", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
32 #[rustc_clean(cfg="cfail3")]
33 #[rustc_clean(cfg="cfail5", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
34 #[rustc_clean(cfg="cfail6")]
35 pub fn add_arm(x
: u32) -> u32 {
46 // Change Order Of Arms --------------------------------------------------------
47 #[cfg(any(cfail1,cfail4))]
48 pub fn change_order_of_arms(x
: u32) -> u32 {
56 #[cfg(not(any(cfail1,cfail4)))]
57 #[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir")]
58 #[rustc_clean(cfg="cfail3")]
59 #[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir")]
60 #[rustc_clean(cfg="cfail6")]
61 pub fn change_order_of_arms(x
: u32) -> u32 {
71 // Add Guard Clause ------------------------------------------------------------
72 #[cfg(any(cfail1,cfail4))]
73 pub fn add_guard_clause(x
: u32, y
: bool
) -> u32 {
81 #[cfg(not(any(cfail1,cfail4)))]
82 #[rustc_clean(cfg="cfail2", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
83 #[rustc_clean(cfg="cfail3")]
84 #[rustc_clean(cfg="cfail5", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
85 #[rustc_clean(cfg="cfail6")]
86 pub fn add_guard_clause(x
: u32, y
: bool
) -> u32 {
96 // Change Guard Clause ------------------------------------------------------------
97 #[cfg(any(cfail1,cfail4))]
98 pub fn change_guard_clause(x
: u32, y
: bool
) -> u32 {
106 #[cfg(not(any(cfail1,cfail4)))]
107 #[rustc_clean(cfg="cfail2", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
108 #[rustc_clean(cfg="cfail3")]
109 #[rustc_clean(cfg="cfail5", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
110 #[rustc_clean(cfg="cfail6")]
111 pub fn change_guard_clause(x
: u32, y
: bool
) -> u32 {
121 // Add @-Binding ---------------------------------------------------------------
122 #[cfg(any(cfail1,cfail4))]
123 pub fn add_at_binding(x
: u32) -> u32 {
131 #[cfg(not(any(cfail1,cfail4)))]
132 #[rustc_clean(cfg="cfail2", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
133 #[rustc_clean(cfg="cfail3")]
134 #[rustc_clean(cfg="cfail5", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
135 #[rustc_clean(cfg="cfail6")]
136 pub fn add_at_binding(x
: u32) -> u32 {
146 // Change Name of @-Binding ----------------------------------------------------
147 #[cfg(any(cfail1,cfail4))]
148 pub fn change_name_of_at_binding(x
: u32) -> u32 {
156 #[cfg(not(any(cfail1,cfail4)))]
157 #[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir")]
158 #[rustc_clean(cfg="cfail3")]
159 #[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir")]
160 #[rustc_clean(cfg="cfail6")]
161 pub fn change_name_of_at_binding(x
: u32) -> u32 {
171 // Change Simple Binding To Pattern --------------------------------------------
172 #[cfg(any(cfail1,cfail4))]
173 pub fn change_simple_name_to_pattern(x
: u32) -> u32 {
180 #[cfg(not(any(cfail1,cfail4)))]
181 #[rustc_clean(cfg="cfail2", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
182 #[rustc_clean(cfg="cfail3")]
183 #[rustc_clean(cfg="cfail5", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
184 #[rustc_clean(cfg="cfail6")]
185 pub fn change_simple_name_to_pattern(x
: u32) -> u32 {
194 // Change Name In Pattern ------------------------------------------------------
195 #[cfg(any(cfail1,cfail4))]
196 pub fn change_name_in_pattern(x
: u32) -> u32 {
204 #[cfg(not(any(cfail1,cfail4)))]
205 #[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir")]
206 #[rustc_clean(cfg="cfail3")]
207 #[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir")]
208 #[rustc_clean(cfg="cfail6")]
209 pub fn change_name_in_pattern(x
: u32) -> u32 {
219 // Change Mutability Of Binding In Pattern -------------------------------------
220 #[cfg(any(cfail1,cfail4))]
221 pub fn change_mutability_of_binding_in_pattern(x
: u32) -> u32 {
228 // Ignore optimized_mir in cfail2, the only change to optimized MIR is a span.
229 #[cfg(not(any(cfail1,cfail4)))]
230 #[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir,typeck")]
231 #[rustc_clean(cfg="cfail3")]
232 #[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir,typeck")]
233 #[rustc_clean(cfg="cfail6")]
234 pub fn change_mutability_of_binding_in_pattern(x
: u32) -> u32 {
243 // Add `ref` To Binding In Pattern -------------------------------------
244 #[cfg(any(cfail1,cfail4))]
245 pub fn add_ref_to_binding_in_pattern(x
: u32) -> u32 {
252 #[cfg(not(any(cfail1,cfail4)))]
253 #[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir,typeck")]
254 #[rustc_clean(cfg="cfail3")]
255 #[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir,typeck")]
256 #[rustc_clean(cfg="cfail6")]
257 pub fn add_ref_to_binding_in_pattern(x
: u32) -> u32 {
266 // Add `&` To Binding In Pattern -------------------------------------
267 #[cfg(any(cfail1,cfail4))]
268 pub fn add_amp_to_binding_in_pattern(x
: u32) -> u32 {
275 #[cfg(not(any(cfail1,cfail4)))]
276 #[rustc_clean(cfg="cfail2", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
277 #[rustc_clean(cfg="cfail3")]
278 #[rustc_clean(cfg="cfail5", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
279 #[rustc_clean(cfg="cfail6")]
280 pub fn add_amp_to_binding_in_pattern(x
: u32) -> u32 {
289 // Change RHS Of Arm -----------------------------------------------------------
290 #[cfg(any(cfail1,cfail4))]
291 pub fn change_rhs_of_arm(x
: u32) -> u32 {
299 #[cfg(not(any(cfail1,cfail4)))]
300 #[rustc_clean(cfg="cfail2", except="hir_owner_nodes,optimized_mir")]
301 #[rustc_clean(cfg="cfail3")]
302 #[rustc_clean(cfg="cfail5", except="hir_owner_nodes,optimized_mir")]
303 #[rustc_clean(cfg="cfail6")]
304 pub fn change_rhs_of_arm(x
: u32) -> u32 {
314 // Add Alternative To Arm ------------------------------------------------------
315 #[cfg(any(cfail1,cfail4))]
316 pub fn add_alternative_to_arm(x
: u32) -> u32 {
324 #[cfg(not(any(cfail1,cfail4)))]
325 #[rustc_clean(cfg="cfail2", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
326 #[rustc_clean(cfg="cfail3")]
327 #[rustc_clean(cfg="cfail5", except="hir_owner,hir_owner_nodes,optimized_mir,typeck")]
328 #[rustc_clean(cfg="cfail6")]
329 pub fn add_alternative_to_arm(x
: u32) -> u32 {