diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-03-30 17:02:43 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-03-30 17:02:43 +0200 |
commit | 14e0f720534397429444fb88d1125e19323dfa4f (patch) | |
tree | d6ee17489eff12f755f8921ecc104c35c4799d28 /src/dotty/tools/dotc/core/pickling/UnPickler.scala | |
parent | fdc92a6ca043bd97d2e27863599d893df94268e1 (diff) | |
download | dotty-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.scala | 6 |
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) }) |