Refine constraints by dedup and removing conflict.
(
constraints: HashMap<String, Vec<Constraint>>,
)
| 137 | |
| 138 | /// Refine constraints by dedup and removing conflict. |
| 139 | pub fn refine_constraints( |
| 140 | constraints: HashMap<String, Vec<Constraint>>, |
| 141 | ) -> HashMap<String, Vec<Constraint>> { |
| 142 | let mut global_constraints: HashMap<String, Vec<Constraint>> = HashMap::new(); |
| 143 | for (func, constraints) in constraints { |
| 144 | let refined = refine_constraints_for_func(constraints); |
| 145 | let refined = refine_file_name_constraint(&func, refined); |
| 146 | if refined.is_empty() { |
| 147 | continue; |
| 148 | } |
| 149 | global_constraints.insert(func, refined); |
| 150 | } |
| 151 | global_constraints |
| 152 | } |
| 153 | |
| 154 | fn refine_constraints_for_arg_tuple(constraints: Vec<Constraint>) -> Vec<Constraint> { |
| 155 | let mut arr_len = Vec::new(); |