From a369a810114884b2cf8c57103e564fda12c72b3d Mon Sep 17 00:00:00 2001 From: VladimirNik Date: Mon, 16 Nov 2015 01:10:18 +0300 Subject: Remove duplication of companion methods in Scala2Unpickler --- .../tools/dotc/core/unpickleScala2/Scala2Unpickler.scala | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src') 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) } } -- cgit v1.2.3