diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-12-05 15:27:45 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-12-16 13:15:03 +0100 |
commit | 4eccc1b333cfe85de441bed85f64d77252239e46 (patch) | |
tree | e35c3662d1695c846880b60d836a474e33946077 /src/dotty/tools/backend | |
parent | 68e2a8ccb82158e6af6b74857f9681ff46990c59 (diff) | |
download | dotty-4eccc1b333cfe85de441bed85f64d77252239e46.tar.gz dotty-4eccc1b333cfe85de441bed85f64d77252239e46.tar.bz2 dotty-4eccc1b333cfe85de441bed85f64d77252239e46.zip |
Desugar dotty Idents to selects
Diffstat (limited to 'src/dotty/tools/backend')
-rw-r--r-- | src/dotty/tools/backend/jvm/DottyBackendInterface.scala | 9 |
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]]() |