summaryrefslogtreecommitdiff
path: root/src/compiler
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 /src/compiler
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.
Diffstat (limited to 'src/compiler')
-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