diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-10-21 22:50:58 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-10-22 10:15:59 +0200 |
commit | 69557da5539a5a5132100fdab931e69f82139e15 (patch) | |
tree | bab832e1c91ce93abc6067779e6fd90c1d3cf940 /test | |
parent | 90d6605d88ee01cb7e1e8761cc82ba28c8575d27 (diff) | |
download | scala-69557da5539a5a5132100fdab931e69f82139e15.tar.gz scala-69557da5539a5a5132100fdab931e69f82139e15.tar.bz2 scala-69557da5539a5a5132100fdab931e69f82139e15.zip |
SI-7020 Deterministic warnings for pattern matcher, take 2
The previous swing at determinism, ebb01e05cbe4, made decent
contact but apparently didn't hit it out of the park. The test
wavered every hundred or so runs, as witnessed occasionally in
nightly builds or pull request validation.
I setup a test to run neg/7020.scala a few hundred times, and
could trigger the failure reliably.
I then swept through the pattern matcher in search of HashMap and
HashSet creation, and changed them all to the Linked variety.
The results of that are published in retronym#ticket/7020-3 [1].
This commit represents the careful whittling down of that patch
to the minimal change required to exhibit determinism.
[1] https://github.com/retronym/scala/compare/ticket/7020-3
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/t7020.check (renamed from test/disabled/neg/t7020.check) | 8 | ||||
-rw-r--r-- | test/files/neg/t7020.flags (renamed from test/disabled/neg/t7020.flags) | 0 | ||||
-rw-r--r-- | test/files/neg/t7020.scala (renamed from test/disabled/neg/t7020.scala) | 0 |
3 files changed, 4 insertions, 4 deletions
diff --git a/test/disabled/neg/t7020.check b/test/files/neg/t7020.check index f9600ca7fc..76390b243d 100644 --- a/test/disabled/neg/t7020.check +++ b/test/files/neg/t7020.check @@ -1,17 +1,17 @@ t7020.scala:3: warning: match may not be exhaustive. -It would fail on the following inputs: List((x: Int forSome x not in (1, 2, 4, 5, 6, 7))), List((x: Int forSome x not in (1, 2, 4, 5, 6, 7)), _), List(1, _), List(2, _), List(4, _), List(5, _), List(6, _), List(7, _), List(??, _), List(_, _) +It would fail on the following inputs: List((x: Int forSome x not in (1, 2, 4, 5, 6, 7))), List((x: Int forSome x not in (1, 2, 4, 5, 6, 7)), _), List(1, _), List(2, _), List(4, _), List(5, _), List(6, _), List(7, _), List(_, _) List(5) match { ^ t7020.scala:10: warning: match may not be exhaustive. -It would fail on the following inputs: List((x: Int forSome x not in (1, 2, 4, 5, 6, 7))), List((x: Int forSome x not in (1, 2, 4, 5, 6, 7)), _), List(1, _), List(2, _), List(4, _), List(5, _), List(6, _), List(7, _), List(??, _), List(_, _) +It would fail on the following inputs: List((x: Int forSome x not in (1, 2, 4, 5, 6, 7))), List((x: Int forSome x not in (1, 2, 4, 5, 6, 7)), _), List(1, _), List(2, _), List(4, _), List(5, _), List(6, _), List(7, _), List(_, _) List(5) match { ^ t7020.scala:17: warning: match may not be exhaustive. -It would fail on the following inputs: List((x: Int forSome x not in (1, 2, 4, 5, 6, 7))), List((x: Int forSome x not in (1, 2, 4, 5, 6, 7)), _), List(1, _), List(2, _), List(4, _), List(5, _), List(6, _), List(7, _), List(??, _), List(_, _) +It would fail on the following inputs: List((x: Int forSome x not in (1, 2, 4, 5, 6, 7))), List((x: Int forSome x not in (1, 2, 4, 5, 6, 7)), _), List(1, _), List(2, _), List(4, _), List(5, _), List(6, _), List(7, _), List(_, _) List(5) match { ^ t7020.scala:24: warning: match may not be exhaustive. -It would fail on the following inputs: List((x: Int forSome x not in (1, 2, 4, 5, 6, 7))), List((x: Int forSome x not in (1, 2, 4, 5, 6, 7)), _), List(1, _), List(2, _), List(4, _), List(5, _), List(6, _), List(7, _), List(??, _), List(_, _) +It would fail on the following inputs: List((x: Int forSome x not in (1, 2, 4, 5, 6, 7))), List((x: Int forSome x not in (1, 2, 4, 5, 6, 7)), _), List(1, _), List(2, _), List(4, _), List(5, _), List(6, _), List(7, _), List(_, _) List(5) match { ^ error: No warnings can be incurred under -Xfatal-warnings. diff --git a/test/disabled/neg/t7020.flags b/test/files/neg/t7020.flags index e8fb65d50c..e8fb65d50c 100644 --- a/test/disabled/neg/t7020.flags +++ b/test/files/neg/t7020.flags diff --git a/test/disabled/neg/t7020.scala b/test/files/neg/t7020.scala index cc5421bab1..cc5421bab1 100644 --- a/test/disabled/neg/t7020.scala +++ b/test/files/neg/t7020.scala |