1 1| |#![allow(unused_assignments, unused_variables)]
2 2| |// compile-flags: -C opt-level=2 # fix described in rustc_middle/mir/mono.rs
4 4| 1| // Initialize test constants in a way that cannot be determined at compile time, to ensure
5 5| 1| // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from
6 6| 1| // dependent conditions.
7 7| 1| let is_true = std::env::args().len() == 1;
8 8| 1| let is_false = ! is_true;
10 10| 1| let mut some_string = Some(String::from("the string content"));
12 12| 1| "The string or alt: {}"
20 20| 0| let mut countdown = 0;
22 22| 0| countdown = 10;
24 24| 0| "alt string 1".to_owned()
29 29| 1| some_string = Some(String::from("the string content"));
35 35| 0| let mut countdown = 0;
37 37| 0| countdown = 10;
39 39| 0| "alt string 2".to_owned()
42 42| 1| "The string or alt: {}"
52 52| 1| some_string = None;
54 54| 1| "The string or alt: {}"
62 62| 1| let mut countdown = 0;
64 64| 0| countdown = 10;
66 66| 1| "alt string 3".to_owned()
71 71| 1| some_string = None;
77 77| 1| let mut countdown = 0;
79 79| 0| countdown = 10;
81 81| 1| "alt string 4".to_owned()
84 84| 1| "The string or alt: {}"
99 99| 5| let mut countdown = 0;
100 100| 5| if is_false {
101 101| 0| countdown = 10;
103 103| 5| format!("'{}'", val)
106 106| 1| "Repeated, quoted string: {:?}"
108 108| 1| std::iter::repeat("repeat me")
112 112| 1| quote_closure
114 114| 1| .collect::<Vec<_>>()
118 118| 1| _unused_closure
124 124| 0| if is_false {
125 125| 0| countdown = 10;
127 127| 0| "closure should be unused".to_owned()
130 130| 1| let mut countdown = 10;
131 131| 1| let _short_unused_closure = | _unused_arg: u8 | countdown += 1;
135 134| 1| let short_used_covered_closure_macro = | used_arg: u8 | println!("called");
136 135| 1| let short_used_not_covered_closure_macro = | used_arg: u8 | println!("not called");
138 136| 1| let _short_unused_closure_macro = | _unused_arg: u8 | println!("not called");
144 141| 1| let _short_unused_closure_block = | _unused_arg: u8 | { println!("not called") };
147 143| 1| let _shortish_unused_closure = | _unused_arg: u8 | {
148 144| 0| println!("not called")
151 147| 1| let _as_short_unused_closure = |
152 148| | _unused_arg: u8
153 149| 0| | { println!("not called") };
155 151| 1| let _almost_as_short_unused_closure = |
156 152| | _unused_arg: u8
157 153| 0| | { println!("not called") }
164 160| 1| let _short_unused_closure_line_break_no_block = | _unused_arg: u8 |
165 161| 0|println!("not called")
168 164| 1| let _short_unused_closure_line_break_no_block2 =
169 165| | | _unused_arg: u8 |
175 171| 1| let short_used_not_covered_closure_line_break_no_block_embedded_branch =
176 172| 1| | _unused_arg: u8 |
178 174| 0| "not called: {}",
179 175| 0| if is_true { "check" } else { "me" }
183 179| 1| let short_used_not_covered_closure_line_break_block_embedded_branch =
184 180| 1| | _unused_arg: u8 |
187 183| 0| "not called: {}",
188 184| 0| if is_true { "check" } else { "me" }
193 189| 1| let short_used_covered_closure_line_break_no_block_embedded_branch =
194 190| 1| | _unused_arg: u8 |
196 192| 1| "not called: {}",
197 193| 1| if is_true { "check" } else { "me" }
202 197| 1| let short_used_covered_closure_line_break_block_embedded_branch =
203 198| 1| | _unused_arg: u8 |
206 201| 1| "not called: {}",
207 202| 1| if is_true { "check" } else { "me" }
213 207| 1| if is_false {
214 208| 0| short_used_not_covered_closure_macro(0);
215 209| 0| short_used_not_covered_closure_line_break_no_block_embedded_branch(0);
216 210| 0| short_used_not_covered_closure_line_break_block_embedded_branch(0);
218 212| 1| short_used_covered_closure_macro(0);
219 213| 1| short_used_covered_closure_line_break_no_block_embedded_branch(0);
220 214| 1| short_used_covered_closure_line_break_block_embedded_branch(0);