aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/unpickleScala2
diff options
context:
space:
mode:
authorVladimirNik <vladimir.nikolaev9@gmail.com>2015-11-16 01:10:18 +0300
committerVladimirNik <vladimir.nikolaev9@gmail.com>2015-11-16 01:10:18 +0300
commita369a810114884b2cf8c57103e564fda12c72b3d (patch)
tree1a8309c9caae573cfcd8ce8f5bf4d8ae993e655a /src/dotty/tools/dotc/core/unpickleScala2
parent522c1f21b6b868a364534bc7cf4bb4f62e1b1b45 (diff)
downloaddotty-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/unpickleScala2')
-rw-r--r--src/dotty/tools/dotc/core/unpickleScala2/Scala2Unpickler.scala16
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)
}
}