Analysis that starts conservatively and can be stopped at any point. Result indicates whether new information was produced for `exprs.last()`.
(&mut self, exprs: &[&MirRelationExpr], depends: &Derived)
| 465 | /// |
| 466 | /// Result indicates whether new information was produced for `exprs.last()`. |
| 467 | fn analyse_pessimistic(&mut self, exprs: &[&MirRelationExpr], depends: &Derived) -> bool { |
| 468 | // TODO: consider making iterative, from some `bottom()` up using `join_assign()`. |
| 469 | self.results.clear(); |
| 470 | for (index, expr) in exprs.iter().enumerate() { |
| 471 | self.results.push(self.derive(expr, index, depends)); |
| 472 | } |
| 473 | true |
| 474 | } |
| 475 | |
| 476 | #[inline] |
| 477 | fn derive(&self, expr: &MirRelationExpr, index: usize, depends: &Derived) -> A::Value { |