summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-05-22 15:49:26 +0000
committerPaul Phillips <paulp@improving.org>2010-05-22 15:49:26 +0000
commit0df04f17e09458f44f17c368c50667d4a92621c2 (patch)
tree95f988446dce07e4af39a886ea7a2756f697c759
parent354e05b8db4ca47fe9434e3989f3d5fd1b2ce37f (diff)
downloadscala-0df04f17e09458f44f17c368c50667d4a92621c2.tar.gz
scala-0df04f17e09458f44f17c368c50667d4a92621c2.tar.bz2
scala-0df04f17e09458f44f17c368c50667d4a92621c2.zip
Discovered via irc one more assertion in the ma...
Discovered via irc one more assertion in the matcher which was asserting something too specific. Fixed, no review.
-rw-r--r--src/compiler/scala/tools/nsc/matching/ParallelMatching.scala4
-rw-r--r--src/compiler/scala/tools/nsc/matching/Patterns.scala5
2 files changed, 4 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala
index 73ecbdee70..00f4186805 100644
--- a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala
+++ b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala
@@ -566,11 +566,13 @@ trait ParallelMatching extends ast.TreeDSL
def isEquivalent = head.tpe =:= pattern.tpe
def isObjectTest = pattern.isObject && (head.tpe =:= pattern.tpe)
+ def whichSubs = if (head.isCaseClass) (pattern expandToArity head.arity) else Nil
+
def ifElsePattern(yes: Pattern) = if (isEquivalent) yes else pattern
def succDummy = succRows += ((j, NoPattern :: pmatch.dummies))
def succTyped(pp: Pattern) = succRows += ((j, ifElsePattern(pp) :: pmatch.dummies))
- def succSubs = succRows += ((j, ifElsePattern(NoPattern) :: (pattern expandToArity head.arity)))
+ def succSubs = succRows += ((j, ifElsePattern(NoPattern) :: whichSubs))
def failOnly = failRows += ((j, pattern))
pattern match {
diff --git a/src/compiler/scala/tools/nsc/matching/Patterns.scala b/src/compiler/scala/tools/nsc/matching/Patterns.scala
index 55d35bf884..7621c1c2f3 100644
--- a/src/compiler/scala/tools/nsc/matching/Patterns.scala
+++ b/src/compiler/scala/tools/nsc/matching/Patterns.scala
@@ -139,10 +139,7 @@ trait Patterns extends ast.TreeDSL {
private def isColonColon = cleanName == "::"
- override def expandToArity(newArity: Int): List[Pattern] = {
- assert(newArity == args.length)
- toPats(args)
- }
+ override def expandToArity(newArity: Int): List[Pattern] = toPats(args)
override def simplify(pv: PatternVar) =
if (args.isEmpty) this rebindToEmpty tree.tpe