diff options
author | Burak Emir <emir@epfl.ch> | 2006-02-15 18:37:17 +0000 |
---|---|---|
committer | Burak Emir <emir@epfl.ch> | 2006-02-15 18:37:17 +0000 |
commit | a831beb5403f95d1b459b1cc42dd370d7d913564 (patch) | |
tree | 0e489249fa38ab5f3aacea0e2c5892f284242fe4 /src | |
parent | dbc6ef023c281678f42c49723f6321ada3dc8eee (diff) | |
download | scala-a831beb5403f95d1b459b1cc42dd370d7d913564.tar.gz scala-a831beb5403f95d1b459b1cc42dd370d7d913564.tar.bz2 scala-a831beb5403f95d1b459b1cc42dd370d7d913564.zip |
fxd missing decl for root.symbol
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/matching/PatternMatchers.scala | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala b/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala index b364f9ce3e..565e80ea0d 100644 --- a/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala +++ b/src/compiler/scala/tools/nsc/matching/PatternMatchers.scala @@ -671,9 +671,10 @@ mixin class PatternMatchers requires (TransMatcher with PatternNodes) extends An else if (ncases == 1) { root.and.or match { case ConstantPat(value) => - return If(Equals(selector, Literal(value)), - (root.and.or.and).bodyToTree(), - defaultBody(root.and, matchError)); + return Block(List(ValDef(root.symbol, selector)), + If(Equals(Ident(root.symbol), Literal(value)), + (root.and.or.and).bodyToTree(), + defaultBody(root.and, matchError))); case _ => return generalSwitchToTree(); } @@ -726,7 +727,7 @@ mixin class PatternMatchers requires (TransMatcher with PatternNodes) extends An } return Switch(selector, tags, bodies, defaultBody1, resultType); */ - nCases = CaseDef(Ident(nme.WILDCARD), defaultBody1) :: nCases; + nCases = CaseDef(Ident(nme.WILDCARD), Block(List(ValDef(root.symbol, selector)),defaultBody1)) :: nCases; return Match(selector, nCases) } |