aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/backend/jvm/DottyBackendInterface.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2014-12-05 15:27:45 +0100
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2014-12-16 13:15:03 +0100
commit4eccc1b333cfe85de441bed85f64d77252239e46 (patch)
treee35c3662d1695c846880b60d836a474e33946077 /src/dotty/tools/backend/jvm/DottyBackendInterface.scala
parent68e2a8ccb82158e6af6b74857f9681ff46990c59 (diff)
downloaddotty-4eccc1b333cfe85de441bed85f64d77252239e46.tar.gz
dotty-4eccc1b333cfe85de441bed85f64d77252239e46.tar.bz2
dotty-4eccc1b333cfe85de441bed85f64d77252239e46.zip
Desugar dotty Idents to selects
Diffstat (limited to 'src/dotty/tools/backend/jvm/DottyBackendInterface.scala')
-rw-r--r--src/dotty/tools/backend/jvm/DottyBackendInterface.scala9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/dotty/tools/backend/jvm/DottyBackendInterface.scala b/src/dotty/tools/backend/jvm/DottyBackendInterface.scala
index 678259f75..052e778dc 100644
--- a/src/dotty/tools/backend/jvm/DottyBackendInterface.scala
+++ b/src/dotty/tools/backend/jvm/DottyBackendInterface.scala
@@ -270,6 +270,15 @@ class DottyBackendInterface()(implicit ctx: Context) extends BackendInterface{
def isQualifierSafeToElide(qual: Tree): Boolean = tpd.isIdempotentExpr(qual)
+ def desugarIdent(i: Ident): Option[Select] = {
+ i.tpe match {
+ case TermRef(prefix: TermRef, name) =>
+ Some(tpd.ref(prefix).select(i.symbol))
+ case TermRef(prefix: ThisType, name) =>
+ Some(tpd.This(prefix.cls).select(i.symbol))
+ case _ => None
+ }
+ }
def getLabelDefOwners(tree: Tree): Map[Tree, List[LabelDef]] = {
// for each rhs of a defdef returns LabelDefs inside this DefDef
val res = new collection.mutable.HashMap[Tree, List[LabelDef]]()