diff options
author | Gerard Basler <gerard.basler@gmail.com> | 2015-03-02 04:22:02 +0100 |
---|---|---|
committer | Gerard Basler <gerard.basler@leonteq.com> | 2015-03-02 11:14:36 +0100 |
commit | 081c1f1d3ae01b1a237ab0f7cacdf04eecf71793 (patch) | |
tree | 8490f3afad8556ae99f371ee86a32a4bf26b1397 /test/files/pos/t9181.flags | |
parent | 092690e7bf71bb22e6e57afb7ea7f67fdfe31a0a (diff) | |
download | scala-081c1f1d3ae01b1a237ab0f7cacdf04eecf71793.tar.gz scala-081c1f1d3ae01b1a237ab0f7cacdf04eecf71793.tar.bz2 scala-081c1f1d3ae01b1a237ab0f7cacdf04eecf71793.zip |
Add a check to ensure that if the formulas originating from the exhaustivity /
reachability analysis are too big to be solved in reasonable time, then we skip
the analysis. I also cleaned up warnings.
Why did `t9181.scala` work fine with 2.11.4, but is now running out of memory?
In order to ensure that the scrutinee is associated only with one of the 400
derived classes we add 400*400 / 2 ~ 80k clauses to ensure mutual exclusivity.
In 2.11.4 the translation into CNF used to fail, since it would blow up already
at this point in memory. This has been fixed in 2.11.5, but now the DPLL solver
is the bottleneck.
There's a check in the search for all models (exhaustivity) that it would avoid
a blow up, but in the search for a model (reachability), such a check is
missing.
Diffstat (limited to 'test/files/pos/t9181.flags')
-rw-r--r-- | test/files/pos/t9181.flags | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/test/files/pos/t9181.flags b/test/files/pos/t9181.flags new file mode 100644 index 0000000000..0f96f1f872 --- /dev/null +++ b/test/files/pos/t9181.flags @@ -0,0 +1 @@ +-nowarn
\ No newline at end of file |