diff options
author | Martin Odersky <odersky@gmail.com> | 2015-07-15 11:43:39 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-09-18 18:05:15 +0200 |
commit | c28f023c0eb35be14c0e649c14ad10b00603e615 (patch) | |
tree | 58d14d51de3f410504c267237869919d8e38d4b8 | |
parent | f19220307f25a08269ab5098de784f023cb6b02b (diff) | |
download | dotty-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.scala | 8 |
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) { |