summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-03-05 21:06:58 +0000
committerPaul Phillips <paulp@improving.org>2010-03-05 21:06:58 +0000
commit3447b38abc70d910738b5a487ab778a68a6d1f7f (patch)
tree2100daa18acf520cba2eb99a29a0323682575367 /src
parenta4558a403ae9e1a9901331526c31c6c2d955a956 (diff)
downloadscala-3447b38abc70d910738b5a487ab778a68a6d1f7f.tar.gz
scala-3447b38abc70d910738b5a487ab778a68a6d1f7f.tar.bz2
scala-3447b38abc70d910738b5a487ab778a68a6d1f7f.zip
Fix for #3136 by reverting the line in r18184 w...
Fix for #3136 by reverting the line in r18184 which caused this and other regressions. The downside is that the #1697 test case no longer passes, but protracted shrug because it wasn't entirely fixed anyway. Review by moors. (Can you triangulate your way to a patch where both work simultaneously? It's today's bonus challenge!)
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/matching/ParallelMatching.scala13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala
index 4a000b1901..ab7b9adf72 100644
--- a/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala
+++ b/src/compiler/scala/tools/nsc/matching/ParallelMatching.scala
@@ -537,7 +537,10 @@ trait ParallelMatching extends ast.TreeDSL
case Pattern(LIT(null), _) if !(p =:= s) => (None, passr) // (1)
case x if isObjectTest => (passl(), None) // (2)
case Pattern(Typed(pp, _), _) if sMatchesP => (typed(pp), None) // (4)
- case Pattern(_: UnApply, _) => (passl(), passr)
+ // The next line used to be this which "fixed" 1697 but introduced
+ // numerous regressions including #3136.
+ // case Pattern(_: UnApply, _) => (passl(), passr)
+ case Pattern(_: UnApply, _) => (None, passr)
case x if !x.isDefault && sMatchesP => (subs(), None)
case x if x.isDefault || pMatchesS => (passl(), passr)
case _ => (None, passr)
@@ -692,8 +695,8 @@ trait ParallelMatching extends ast.TreeDSL
}
def createLabelBody(index: Int, pvgroup: PatternVarGroup) = {
- def args = pvgroup.syms
- def vdefs = pvgroup.valDefs
+ val args = pvgroup.syms
+ val vdefs = pvgroup.valDefs
val name = "body%" + index
require(_labelSym == null)
@@ -712,8 +715,8 @@ trait ParallelMatching extends ast.TreeDSL
}
def getLabelBody(pvgroup: PatternVarGroup): Tree = {
- def idents = pvgroup map (_.rhs)
- def vdefs = pvgroup.valDefs
+ val idents = pvgroup map (_.rhs)
+ val vdefs = pvgroup.valDefs
referenceCount += 1
// if (idents.size != labelParamTypes.size)
// consistencyFailure(idents, vdefs)