summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/internal/pickling/UnPickler.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2016-11-29 14:42:01 +1000
committerJason Zaugg <jzaugg@gmail.com>2016-11-29 14:48:58 +1000
commit51d851ce2e403201d99d236a4bafd5728edc754f (patch)
tree749dd8e62ce2875bd4101d454676b68c3caff422 /src/reflect/scala/reflect/internal/pickling/UnPickler.scala
parentb47aaf6445afe4a6818c31a0ed10e680e6b82c24 (diff)
downloadscala-51d851ce2e403201d99d236a4bafd5728edc754f.tar.gz
scala-51d851ce2e403201d99d236a4bafd5728edc754f.tar.bz2
scala-51d851ce2e403201d99d236a4bafd5728edc754f.zip
SD-275 Further harden against refs to absentee classes
- Limit the strategy of unpickling an external reference to a module class to a lookup of the module var to non-stub owners in order to enable fall through to stub symbol creation. Fixes scala/scala-dev#275
Diffstat (limited to 'src/reflect/scala/reflect/internal/pickling/UnPickler.scala')
-rw-r--r--src/reflect/scala/reflect/internal/pickling/UnPickler.scala5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/reflect/scala/reflect/internal/pickling/UnPickler.scala b/src/reflect/scala/reflect/internal/pickling/UnPickler.scala
index 3bc845557f..fd7d2d9dd6 100644
--- a/src/reflect/scala/reflect/internal/pickling/UnPickler.scala
+++ b/src/reflect/scala/reflect/internal/pickling/UnPickler.scala
@@ -224,10 +224,9 @@ abstract class UnPickler {
if (owner.isOverloaded)
return NoSymbol
- if (tag == EXTMODCLASSref) {
+ if (tag == EXTMODCLASSref && !owner.isInstanceOf[StubSymbol])
owner.info.decl(nme.moduleVarName(name.toTermName))
- }
- NoSymbol
+ else NoSymbol
}
def moduleAdvice(missing: String): String = {