(
&self,
targets: &mut FunctionTargetsHolder,
func_env: &FunctionEnv,
data: FunctionData,
_scc_opt: Option<&[FunctionEnv]>,
)
| 74 | |
| 75 | impl FunctionTargetProcessor for LoopAnalysisProcessor { |
| 76 | fn process( |
| 77 | &self, |
| 78 | targets: &mut FunctionTargetsHolder, |
| 79 | func_env: &FunctionEnv, |
| 80 | data: FunctionData, |
| 81 | _scc_opt: Option<&[FunctionEnv]>, |
| 82 | ) -> FunctionData { |
| 83 | if func_env.is_native() |
| 84 | || data |
| 85 | .annotations |
| 86 | .get::<VerificationInfo>() |
| 87 | .map(|info| info.reachable) |
| 88 | .unwrap_or(false) |
| 89 | { |
| 90 | return data; |
| 91 | } |
| 92 | let loop_annotation = Self::build_loop_annotation(targets, func_env, &data); |
| 93 | // println!("before {}:", self.name()); |
| 94 | // println!("{}", FunctionTarget::new(func_env, &data)); |
| 95 | // let result = Self::transform(func_env, data, &loop_annotation); |
| 96 | // println!("after {}:", self.name()); |
| 97 | // println!("{}", FunctionTarget::new(func_env, &result)); |
| 98 | // result |
| 99 | Self::transform(targets, func_env, data, &loop_annotation) |
| 100 | } |
| 101 | |
| 102 | fn name(&self) -> String { |
| 103 | "loop_analysis".to_string() |
no test coverage detected