1 #![allow(unused_assignments, unused_variables)]
2 // compile-flags: -C opt-level=2 # fix described in rustc_middle/mir/mono.rs
4 // Initialize test constants in a way that cannot be determined at compile time, to ensure
5 // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from
6 // dependent conditions.
7 let is_true = std::env::args().len() == 1;
8 let is_false = ! is_true;
10 let mut some_string = Some(String::from("the string content"));
12 "The string or alt: {}"
20 let mut countdown = 0;
24 "alt string 1".to_owned()
29 some_string = Some(String::from("the string content"));
35 let mut countdown = 0;
39 "alt string 2".to_owned()
42 "The string or alt: {}"
54 "The string or alt: {}"
62 let mut countdown = 0;
66 "alt string 3".to_owned()
77 let mut countdown = 0;
81 "alt string 4".to_owned()
84 "The string or alt: {}"
99 let mut countdown = 0;
106 "Repeated, quoted string: {:?}"
108 std::iter::repeat("repeat me")
127 "closure should be unused".to_owned()
130 let mut countdown = 10;
131 let _short_unused_closure = | _unused_arg: u8 | countdown += 1;
134 let short_used_covered_closure_macro = | used_arg: u8 | println!("called");
135 let short_used_not_covered_closure_macro = | used_arg: u8 | println!("not called");
136 let _short_unused_closure_macro = | _unused_arg: u8 | println!("not called");
141 let _short_unused_closure_block = | _unused_arg: u8 | { println!("not called") };
143 let _shortish_unused_closure = | _unused_arg: u8 | {
144 println!("not called")
147 let _as_short_unused_closure = |
149 | { println!("not called") };
151 let _almost_as_short_unused_closure = |
153 | { println!("not called") }
160 let _short_unused_closure_line_break_no_block = | _unused_arg: u8 |
161 println!("not called")
164 let _short_unused_closure_line_break_no_block2 =
171 let short_used_not_covered_closure_line_break_no_block_embedded_branch =
175 if is_true { "check" } else { "me" }
179 let short_used_not_covered_closure_line_break_block_embedded_branch =
184 if is_true { "check" } else { "me" }
189 let short_used_covered_closure_line_break_no_block_embedded_branch =
193 if is_true { "check" } else { "me" }
197 let short_used_covered_closure_line_break_block_embedded_branch =
202 if is_true { "check" } else { "me" }
208 short_used_not_covered_closure_macro(0);
209 short_used_not_covered_closure_line_break_no_block_embedded_branch(0);
210 short_used_not_covered_closure_line_break_block_embedded_branch(0);
212 short_used_covered_closure_macro(0);
213 short_used_covered_closure_line_break_no_block_embedded_branch(0);
214 short_used_covered_closure_line_break_block_embedded_branch(0);