aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/pickling/UnPickler.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-03-30 17:02:43 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-03-30 17:02:43 +0200
commit14e0f720534397429444fb88d1125e19323dfa4f (patch)
treed6ee17489eff12f755f8921ecc104c35c4799d28 /src/dotty/tools/dotc/core/pickling/UnPickler.scala
parentfdc92a6ca043bd97d2e27863599d893df94268e1 (diff)
downloaddotty-14e0f720534397429444fb88d1125e19323dfa4f.tar.gz
dotty-14e0f720534397429444fb88d1125e19323dfa4f.tar.bz2
dotty-14e0f720534397429444fb88d1125e19323dfa4f.zip
Fix #443, set moduleClass of class being lazily unpickled.
Diffstat (limited to 'src/dotty/tools/dotc/core/pickling/UnPickler.scala')
-rw-r--r--src/dotty/tools/dotc/core/pickling/UnPickler.scala6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/UnPickler.scala b/src/dotty/tools/dotc/core/pickling/UnPickler.scala
index 27f87d8fb..610b0eb77 100644
--- a/src/dotty/tools/dotc/core/pickling/UnPickler.scala
+++ b/src/dotty/tools/dotc/core/pickling/UnPickler.scala
@@ -495,7 +495,11 @@ class UnPickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot:
if (isModuleRoot) {
moduleRoot setFlag flags
moduleRoot.symbol
- } else ctx.newSymbol(owner, name.asTermName, flags, localMemberUnpickler, coord = start)
+ } else ctx.newSymbol(owner, name.asTermName, flags,
+ new LocalUnpickler() withModuleClass(implicit ctx =>
+ owner.info.decls.lookup(name.moduleClassName)
+ .suchThat(_ is Module).symbol)
+ , coord = start)
case _ =>
errorBadSignature("bad symbol tag: " + tag)
})