diff options
author | Paul Phillips <paulp@improving.org> | 2010-03-05 21:06:58 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-03-05 21:06:58 +0000 |
commit | 3447b38abc70d910738b5a487ab778a68a6d1f7f (patch) | |
tree | 2100daa18acf520cba2eb99a29a0323682575367 /src/compiler | |
parent | a4558a403ae9e1a9901331526c31c6c2d955a956 (diff) | |
download | scala-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/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/matching/ParallelMatching.scala | 13 |
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) |