#![allow(unused_assignments, unused_variables, dead_code)] fn main() { // Initialize test constants in a way that cannot be determined at compile time, to ensure // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from // dependent conditions. let is_true = std::env::args().len() == 1; let mut countdown = 0; if is_true { countdown = 10; } mod in_mod { const IN_MOD_CONST: u32 = 1000; } fn in_func(a: u32) { let b = 1; let c = a + b; println!("c = {}", c) } struct InStruct { in_struct_field: u32, } const IN_CONST: u32 = 1234; trait InTrait { fn trait_func(&mut self, incr: u32); fn default_trait_func(&mut self) { in_func(IN_CONST); self.trait_func(IN_CONST); } } impl InTrait for InStruct { fn trait_func(&mut self, incr: u32) { self.in_struct_field += incr; in_func(self.in_struct_field); } } type InType = String; if is_true { in_func(countdown); } let mut val = InStruct { in_struct_field: 101, }; val.default_trait_func(); }