Merge pull request #826 from Manishearth/patho-bool

Ignore pathological cases in boolean lint
This commit is contained in:
Manish Goregaokar 2016-04-01 21:32:41 +05:30
commit c150ae7824
3 changed files with 34 additions and 1 deletions

View file

@ -294,6 +294,14 @@ impl<'a, 'tcx> NonminimalBoolVisitor<'a, 'tcx> {
cx: self.0,
};
if let Ok(expr) = h2q.run(e) {
if h2q.terminals.len() > 8 {
// QMC has exponentially slow behavior as the number of terminals increases
// 8 is reasonable, it takes approximately 0.2 seconds.
// See #825
return;
}
let stats = terminal_stats(&expr);
let mut simplified = expr.simplify();
for simple in Bool::Not(Box::new(expr.clone())).simplify() {