diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-09-23 23:36:04 -0700 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-09-23 23:36:04 -0700 |
commit | c2e3b0656bb449e95a529e266294aeabb9cbef3f (patch) | |
tree | 1dc9915c79f23424d697f34f408ad33b1260ff63 /src/compiler | |
parent | 7d570b54c3c895bc8948adeca2e463d135e38feb (diff) | |
parent | 16d963bcb032deb669247e4a95c6391971cafd75 (diff) | |
download | scala-c2e3b0656bb449e95a529e266294aeabb9cbef3f.tar.gz scala-c2e3b0656bb449e95a529e266294aeabb9cbef3f.tar.bz2 scala-c2e3b0656bb449e95a529e266294aeabb9cbef3f.zip |
Merge pull request #2975 from retronym/ticket/7868
SI-7868 Account for numeric widening in match translation
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/patmat/MatchTranslation.scala | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/patmat/MatchTranslation.scala b/src/compiler/scala/tools/nsc/transform/patmat/MatchTranslation.scala index 75335f7920..ab19660da5 100644 --- a/src/compiler/scala/tools/nsc/transform/patmat/MatchTranslation.scala +++ b/src/compiler/scala/tools/nsc/transform/patmat/MatchTranslation.scala @@ -600,9 +600,15 @@ trait MatchTranslation { protected def spliceApply(binder: Symbol): Tree = { object splice extends Transformer { + def binderRef(pos: Position): Tree = + REF(binder) setPos pos override def transform(t: Tree) = t match { + // duplicated with the extractor Unapplied case Apply(x, List(i @ Ident(nme.SELECTOR_DUMMY))) => - treeCopy.Apply(t, x, (REF(binder) setPos i.pos) :: Nil) + treeCopy.Apply(t, x, binderRef(i.pos) :: Nil) + // SI-7868 Account for numeric widening, e.g. <unappplySelector>.toInt + case Apply(x, List(i @ (sel @ Select(Ident(nme.SELECTOR_DUMMY), name)))) => + treeCopy.Apply(t, x, treeCopy.Select(sel, binderRef(i.pos), name) :: Nil) case _ => super.transform(t) } |