aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-07-15 11:43:39 +0200
committerMartin Odersky <odersky@gmail.com>2015-09-18 18:05:15 +0200
commitc28f023c0eb35be14c0e649c14ad10b00603e615 (patch)
tree58d14d51de3f410504c267237869919d8e38d4b8
parentf19220307f25a08269ab5098de784f023cb6b02b (diff)
downloaddotty-c28f023c0eb35be14c0e649c14ad10b00603e615.tar.gz
dotty-c28f023c0eb35be14c0e649c14ad10b00603e615.tar.bz2
dotty-c28f023c0eb35be14c0e649c14ad10b00603e615.zip
Avoid generating companion-methods for non-class types.
This would lead to a crash. Example is in Predef: object Pair type Pair
-rw-r--r--src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala b/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala
index e6eb89008..457c8cfa6 100644
--- a/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala
+++ b/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala
@@ -127,9 +127,11 @@ object Scala2Unpickler {
val companionClassMethod = ctx.synthesizeCompanionMethod(nme.COMPANION_CLASS_METHOD, claz, module)
if (companionClassMethod.exists)
companionClassMethod.entered
- val companionModuleMethod = ctx.synthesizeCompanionMethod(nme.COMPANION_MODULE_METHOD, module, claz)
- if (companionModuleMethod.exists)
- companionModuleMethod.entered
+ if (claz.isClass) {
+ val companionModuleMethod = ctx.synthesizeCompanionMethod(nme.COMPANION_MODULE_METHOD, module, claz)
+ if (companionModuleMethod.exists)
+ companionModuleMethod.entered
+ }
}
if (denot.flagsUNSAFE is Module) {