diff options
author | Paul Phillips <paulp@improving.org> | 2010-05-22 15:49:26 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-05-22 15:49:26 +0000 |
commit | 0df04f17e09458f44f17c368c50667d4a92621c2 (patch) | |
tree | 95f988446dce07e4af39a886ea7a2756f697c759 | |
parent | 354e05b8db4ca47fe9434e3989f3d5fd1b2ce37f (diff) | |
download | scala-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.scala | 4 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/matching/Patterns.scala | 5 |
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 |