aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-02-04 16:15:22 +0100
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-03-11 14:43:05 +0100
commitaedeab9f49fbbf35ed6817e51420da4de449fd14 (patch)
tree742349ec942ec77632b49af00e1530edf7c8fc7c
parentd7c8d75246fd75d1cc03c1d39f7dd5518f215b47 (diff)
downloaddotty-aedeab9f49fbbf35ed6817e51420da4de449fd14.tar.gz
dotty-aedeab9f49fbbf35ed6817e51420da4de449fd14.tar.bz2
dotty-aedeab9f49fbbf35ed6817e51420da4de449fd14.zip
Workaround #348, linkedClass is broken after flatten
-rw-r--r--src/dotty/tools/backend/jvm/DottyBackendInterface.scala7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/dotty/tools/backend/jvm/DottyBackendInterface.scala b/src/dotty/tools/backend/jvm/DottyBackendInterface.scala
index 111a5f5f5..651c5d736 100644
--- a/src/dotty/tools/backend/jvm/DottyBackendInterface.scala
+++ b/src/dotty/tools/backend/jvm/DottyBackendInterface.scala
@@ -493,7 +493,12 @@ class DottyBackendInterface()(implicit ctx: Context) extends BackendInterface{
def superClass: Symbol = toDenot(sym).superClass
def enclClass: Symbol = toDenot(sym).enclosingClass
def linkedClassOfClass: Symbol = linkedClass
- def linkedClass: Symbol = toDenot(sym).linkedClass //exitingPickler(sym.linkedClassOfClass)
+ def linkedClass: Symbol = {
+ val ct = ctx.withPhase(ctx.flattenPhase.prev)
+ toDenot(sym)(ct).linkedClass(ct)
+ // java.util.Attributes.Name$ -> java$util$Attributes$Name$ no companion class after flatten
+ // see bug #348
+ } //exitingPickler(sym.linkedClassOfClass)
def companionClass: Symbol = toDenot(sym).companionClass
def companionModule: Symbol = toDenot(sym).companionModule
def companionSymbol: Symbol = if (sym is Flags.Module) companionClass else companionModule