scala/scala — pull request #2120 by adriaanm (2013-02-13 01:26:08+00:00)
Title: refactor the pattern matcher into smaller files

- align the 2.11 and 2.10 pattern matcher implementations, factoring out their differences as compatibility stubs (the difference was mostly code cleanup)
- split the monster into 5 smaller monsters [*] and subsequent minor refactors
- drop `Cond` in favor of `Prop` and sweet up around the area

review by @paulp, @retronym and anyone else who'd like to split the monster

[*] To verify the split in smaller files (it doesn't change any behavior, I promise), may I suggest:

```
git checkout e14846b

cat \
src/compiler/scala/tools/nsc/transform/patmat/PatternMatching.scala \
src/compiler/scala/tools/nsc/transform/patmat/MatchTranslation.scala \
src/compiler/scala/tools/nsc/transform/patmat/MatchTreeMakers.scala \
src/compiler/scala/tools/nsc/transform/patmat/MatchCodeGen.scala \
src/compiler/scala/tools/nsc/transform/patmat/MatchAnalysis.scala \
src/compiler/scala/tools/nsc/transform/patmat/Logic.scala \
src/compiler/scala/tools/nsc/transform/patmat/MatchOptimization.scala > /tmp/patmat.scala

git checkout e14846b^

opendiff src/compiler/scala/tools/nsc/typechecker/PatternMatching.scala /tmp/patmat.scala
```