diff options
author | VladimirNik <vladimir.nikolaev9@gmail.com> | 2015-11-16 01:10:18 +0300 |
---|---|---|
committer | VladimirNik <vladimir.nikolaev9@gmail.com> | 2015-11-16 01:10:18 +0300 |
commit | a369a810114884b2cf8c57103e564fda12c72b3d (patch) | |
tree | 1a8309c9caae573cfcd8ce8f5bf4d8ae993e655a /src/dotty/tools/dotc/core | |
parent | 522c1f21b6b868a364534bc7cf4bb4f62e1b1b45 (diff) | |
download | dotty-a369a810114884b2cf8c57103e564fda12c72b3d.tar.gz dotty-a369a810114884b2cf8c57103e564fda12c72b3d.tar.bz2 dotty-a369a810114884b2cf8c57103e564fda12c72b3d.zip |
Remove duplication of companion methods in Scala2Unpickler
Diffstat (limited to 'src/dotty/tools/dotc/core')
-rw-r--r-- | src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala b/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala index 709270994..321846de6 100644 --- a/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala +++ b/src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala @@ -119,13 +119,17 @@ object Scala2Unpickler { val scalacCompanion = denot.classSymbol.scalacLinkedClass def registerCompanionPair(module: Symbol, claz: Symbol) = { - val companionClassMethod = ctx.synthesizeCompanionMethod(nme.COMPANION_CLASS_METHOD, claz, module) - if (companionClassMethod.exists) - companionClassMethod.entered + def registerCompanionMethod(name: Name, target: Symbol, owner: Symbol) = { + if (!owner.unforcedDecls.lookup(name).exists) { + val companionMethod = ctx.synthesizeCompanionMethod(name, target, owner) + if (companionMethod.exists) { + companionMethod.entered + } + } + } + registerCompanionMethod(nme.COMPANION_CLASS_METHOD, claz, module) if (claz.isClass) { - val companionModuleMethod = ctx.synthesizeCompanionMethod(nme.COMPANION_MODULE_METHOD, module, claz) - if (companionModuleMethod.exists) - companionModuleMethod.entered + registerCompanionMethod(nme.COMPANION_MODULE_METHOD, module, claz) } } |