summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2013-08-13 14:26:01 -0700
committerAdriaan Moors <adriaan.moors@typesafe.com>2013-08-13 14:26:01 -0700
commitebb0339ff9e52cce7014e6c8e3309bffafa3abf2 (patch)
treec72e00db5b0ca8366993a6fef5b7f906228b5a1f /src/compiler
parente0d487d63144f2422d0be3bd8ac77e6f842e55ab (diff)
parentebb01e05cbe4541838efa189196fe7a49ddb82cf (diff)
downloadscala-ebb0339ff9e52cce7014e6c8e3309bffafa3abf2.tar.gz
scala-ebb0339ff9e52cce7014e6c8e3309bffafa3abf2.tar.bz2
scala-ebb0339ff9e52cce7014e6c8e3309bffafa3abf2.zip
Merge pull request #2826 from retronym/ticket/7020-2.10.x
SI-7020 Determinism for pattern matcher warnings
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/transform/patmat/Solving.scala9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/patmat/Solving.scala b/src/compiler/scala/tools/nsc/transform/patmat/Solving.scala
index 843f831ea1..ec66bf6f20 100644
--- a/src/compiler/scala/tools/nsc/transform/patmat/Solving.scala
+++ b/src/compiler/scala/tools/nsc/transform/patmat/Solving.scala
@@ -208,15 +208,16 @@ trait Solving extends Logic {
withLit(findModelFor(dropUnit(f, unitLit)), unitLit)
case _ =>
// partition symbols according to whether they appear in positive and/or negative literals
- val pos = new mutable.HashSet[Sym]()
- val neg = new mutable.HashSet[Sym]()
+ // SI-7020 Linked- for deterministic counter examples.
+ val pos = new mutable.LinkedHashSet[Sym]()
+ val neg = new mutable.LinkedHashSet[Sym]()
f.foreach{_.foreach{ lit =>
if (lit.pos) pos += lit.sym else neg += lit.sym
}}
// appearing in both positive and negative
- val impures = pos intersect neg
+ val impures: mutable.LinkedHashSet[Sym] = pos intersect neg
// appearing only in either positive/negative positions
- val pures = (pos ++ neg) -- impures
+ val pures: mutable.LinkedHashSet[Sym] = (pos ++ neg) -- impures
if (pures nonEmpty) {
val pureSym = pures.head