(&self, other: &Self)
| 176 | IntervalAbstractDomain<Type>: GetDomainType, |
| 177 | { |
| 178 | pub fn leq(&self, other: &Self) -> bool { |
| 179 | if self.is_bottom() || other.is_top() { |
| 180 | return true; |
| 181 | } |
| 182 | if other.is_bottom() { |
| 183 | return self.is_bottom(); |
| 184 | } |
| 185 | for (path, itv) in &self.intervals { |
| 186 | if !interval_leq(itv, &other.var2itv(path)) { |
| 187 | return false; |
| 188 | } |
| 189 | } |
| 190 | for (path, other_itv) in &other.intervals { |
| 191 | if !self.intervals.contains_key(path) && !other_itv.is_top() { |
| 192 | return false; |
| 193 | } |
| 194 | } |
| 195 | true |
| 196 | } |
| 197 | |
| 198 | pub fn rename(&mut self, old_path: &Rc<Path>, new_path: &Rc<Path>) { |
| 199 | if self.contains(old_path) { |
nothing calls this directly
no test coverage detected