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);