summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/typechecker/Namers.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-11-23 22:25:22 +0100
committerJason Zaugg <jzaugg@gmail.com>2013-11-24 09:12:24 +0100
commit28bf4ada31119712b415b2b2f6aeb87f0431eb48 (patch)
treeb4aad81d541a4fa1327b051c67f277554aa6aecc /src/compiler/scala/tools/nsc/typechecker/Namers.scala
parentc243435f113615b2f7407fbd683c93ec16c73749 (diff)
downloadscala-28bf4ada31119712b415b2b2f6aeb87f0431eb48.tar.gz
scala-28bf4ada31119712b415b2b2f6aeb87f0431eb48.tar.bz2
scala-28bf4ada31119712b415b2b2f6aeb87f0431eb48.zip
SI-8002 private access for local companions
We go through similar gymnastics to make companion implicits work for local class/object pairings, so we ought to be consistent when it comes to access
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Namers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
index e3d7bfd4f8..39e259fdfd 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
@@ -1695,4 +1695,11 @@ trait Namers extends MethodSynthesis {
)
}
}
+
+ /** A version of `Symbol#linkedClassOfClass` that works with local companions, ala `companionSymbolOf`. */
+ final def linkedClassOfClassOf(original: Symbol, ctx: Context): Symbol =
+ if (original.isModuleClass)
+ companionSymbolOf(original.sourceModule, ctx)
+ else
+ companionSymbolOf(original, ctx).moduleClass
}