blob: b13ca83d018f999b69f6135f98051145b7674b30 [file] [log] [blame]
1| |#![allow(unused_assignments, unused_variables)]
2| |
3| |fn main() {
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| 1| let is_true = std::env::args().len() == 1;
8| 1|
9| 1| let mut countdown = 0;
10| 1| if is_true {
11| 1| countdown = 10;
12| 1| }
13| |
14| | mod in_mod {
15| | const IN_MOD_CONST: u32 = 1000;
16| | }
17| |
18| | fn in_func(a: u32) {
19| 3| let b = 1;
20| 3| let c = a + b;
21| 3| println!("c = {}", c)
22| 3| }
23| |
24| | struct InStruct {
25| | in_struct_field: u32,
26| | }
27| |
28| | const IN_CONST: u32 = 1234;
29| |
30| | trait InTrait {
31| | fn trait_func(&mut self, incr: u32);
32| |
33| 1| fn default_trait_func(&mut self) {
34| 1| in_func(IN_CONST);
35| 1| self.trait_func(IN_CONST);
36| 1| }
37| | }
38| |
39| | impl InTrait for InStruct {
40| | fn trait_func(&mut self, incr: u32) {
41| 1| self.in_struct_field += incr;
42| 1| in_func(self.in_struct_field);
43| 1| }
44| | }
45| |
46| | type InType = String;
47| |
48| 1| if is_true {
49| 1| in_func(countdown);
50| 1| }
51| |
52| 1| let mut val = InStruct {
53| 1| in_struct_field: 101,
54| 1| };
55| 1|
56| 1| val.default_trait_func();
57| 1|}