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